ES學習筆記基礎

1.精確匹配查詢

我們首先來看最爲常用的 term 查詢, 可以用它處理數字(numbers)、布爾值(Booleans)、日期(dates)以及文本(text)。

在 Elasticsearch 的查詢表達式(query DSL)中,我們可以使用 term 查詢達到相同的目的。 term 查詢會查找我們指定的精確值。作爲其本身, term 查詢是簡單的。它接受一個字段名以及我們希望查找的數值:

{
    "term" : {
        "price" : 20
    }
}

通常當查找一個精確值的時候,我們不希望對查詢進行評分計算。只希望對文檔進行包括或排除的計算,所以我們會使用 constant_score 查詢以非評分模式來執行 term 查詢並以一作爲統一評分。

最終組合的結果是一個 constant_score 查詢,它包含一個 term 查詢:

GET /my_store/products/_search
{
    "query" : {
        "constant_score" : { 
            "filter" : {
                "term" : { 
                    "price" : 20
                }
            }
        }
    }
}

我們用 constant_score 將 term 查詢轉化成爲過濾器

2.一定要了解 term 和 terms 是 包含(contains) 操作,而非 等值(equals) (判斷)。 

發佈了47 篇原創文章 · 獲贊 22 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章