全文檢索,入參分詞后檢索整個文檔
"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": "被檢查的字段名"
}
}
}