ES查詢優化之查詢基礎
基本查詢
Term查詢
{ "query": { "term": { "title": "crime" } } } #範例2,指定得分權重,boost { "query": { "term": { "title": { "value":"crime", "boost":10.0 } } } } #範例3:多term查詢 { "query": { "terms": { "tags": ["novel","book"] } } }
常用詞查詢:高低頻查詢
{ "query": { "common": { "title":{ "query":"crime and punishment", "cutoff_frequency":0.001 } } } }
match查詢
{ "query": { "match": { "title": "crime and punishment" } } } #範例2 { "query": { "match": { "title": { "query":"crime and punishment", "operator":"and"#要求and或者or匹配文字的分詞 } } } }
query_string查詢
識別符號查詢
字首查詢
{ "query": { "prefix": { "title":"cri" } } } #指定權重 { "query": { "prefix": { "title":{ "value":"cri", "boost":3.0 } } } }
fuzzy查詢
萬用字元查詢
{ "query": { "wildcard": { "title": "cr?me" } } }
範圍查詢
{ "query": { "range": {#只能針對單個欄位,可以是數值型的,也可以是基於字串的。 "year": { "gte" :1890, "lte":1900 } } } }
正則表示式查詢
{ "query": { "regexp": { "title": { "value" :"cr.m[ae]", "boost":10.0 } } } }
布林組合查詢
{ "query": { "bool": { "must": { "term": { "title": "crime" } }, "should": { "range": { "year": { "from": 1900, "to": 2000 } } }, "must_not": { "term": { "otitle": "nothing" } } } } }