ES(elasticsearch) query DSL 查詢語法


全文檢索,入參分詞后檢索整個文檔

"query_string": {
    "default_field": "name",
    "query": "被檢索的字符串"
}

前綴檢索,入參分詞 "prefix":{
   "name": "被檢索的前綴"
}

按屬性精確查找,入參不會被分詞 "term": {
    "name": "被檢索的字符串"
}

按屬性多值精確查找,入參不會被分詞 "terms": {
    "name": [
        "被檢索的字符串1",
        "被檢索的字符串2"
    ]
}

多屬性分詞查找,入參被分詞 "multi_match": {
    "query": "被檢索的字符串",
    "fields": [
        "name",
        "city"
    ]
}

按屬性分詞查找,入參被分詞 "match": {
    "name": "name 是字段名,這段話是要檢索的文本"
}

短語查找,入參分詞,但是詞序不變 "match_phrase": {
    "name": "完整匹配"
}

范圍查找 

"range": { "age": { "gte": 10, "lte": 20 } } bool 值查找很特殊,它是上面查找的組合,可以把他們理解為 邏輯連接,上面的查詢都是對文檔的過濾。 filter 關鍵字也是
過濾作用的,但是它不能單獨使用,必須跟 bool 聯合使用
"bool": { "must_not": [ { "term": { "name": { "value": "被檢索的字符串" } } } ], "filter": { "exists": { "field": "被檢查的字段名" } } }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM