05.full_text match_bool_prefix match_phrase_prefix 查询
文章目錄
- 1. match_bool_prefix查詢
- 1.1. 參數(shù)
- 2. 短語查詢
- 2.1 phrase_prefix_query
1. match_bool_prefix查詢
match_bool_prefix查詢會analyze其輸入,并根據(jù)這些 term 構(gòu)造一個bool查詢。term查詢中使用除最后一個詞以外的每個term。最后一項在前綴查詢中使用。 match_bool_prefix查詢,例如
GET /_search {"query": {"match_bool_prefix" : {"message" : "quick brown f"}} }等價于
GET /_search {"query": {"bool" : {"should": [{ "term": { "message": "quick" }},{ "term": { "message": "brown" }},{ "prefix": { "message": "f"}}]}} }match_bool_prefix查詢和match_phrase_prefix之間的重要區(qū)別是match_phrase_prefix查詢將其 term 作為短語進(jìn)行匹配,但是match_bool_prefix查詢可以在任何位置匹配其 term 。上面的示例match_bool_prefix查詢可以匹配包含quich brown fox 的字段,但也可以 brown fox quick 。它也可以匹配出現(xiàn)在任何位置的包含“fast”,“brown”和以f開頭的 term 的字段。
1.1. 參數(shù)
默認(rèn)情況下,將使用 analyzer 從查詢字段的 mapping 中analyzematch_bool_prefix查詢的輸入文本。可以使用 analyzer 參數(shù)配置其他搜索 analyzer
GET /_search {"query": {"match_bool_prefix": {"message": {"query": "quick brown f","analyzer": "keyword"}}} }match_bool_prefix查詢支持對match查詢所述的minimum_should_match和operator參數(shù),并將設(shè)置應(yīng)用于構(gòu)造的布爾查詢。在大多數(shù)情況下,構(gòu)造的布爾查詢中的子句數(shù)將是通過analyze查詢文本產(chǎn)生的 term 數(shù)。
模糊性,prefix_length,max_expansions,fuzzy_transpositions和Fuzzy_rewrite參數(shù)可以應(yīng)用于為除最終 term 以外的所有 term 構(gòu)造的 term 子查詢。它們對為最終 term 構(gòu)造的前綴查詢沒有任何影響。
2. 短語查詢
就是查詢的詞必須是按照順序連著的
GET /_search {"query": {"match_phrase": {"message": "this is a test"}} }對應(yīng)的參數(shù)可以有
slop: 這個參數(shù)設(shè)置了連個term之間可以間隔幾個term,默認(rèn)為0,就是term必須是連著的
analyzer: 查詢分詞器
2.1 phrase_prefix_query
短語前綴查詢
GET /_search {"query": {"match_phrase_prefix": {"message": {"query": "quick brown f"}}} }query: 查詢語句
analyzer: 查詢分詞器
max_expansions: 前綴查詢最多匹配到的term的數(shù)量
slop: 在兩個matching的term中間最多有slop個term,默認(rèn)為0
zero_terms_query: 如果query都是停用詞怎么辦,none,就不會有結(jié)果, all,等價match_all搜索
相對而言,使用search_as_you_type 和completion suggester可能會有更好的效果
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的05.full_text match_bool_prefix match_phrase_prefix 查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 04.full_text match查询
- 下一篇: 06.full_text multi_m