Elasticsearch Prefix query 前綴查詢
摘要
返回包含指定前綴的所有文檔;簡單來說,就是文檔某個field
字段的前幾個單詞的前綴爲value
,則滿足匹配條件。
參數
field
,想要搜索的字段
field 下級參數
value
必選項,前綴
請求示例
GET blak_new/_search
{
"query": {
"prefix": {
"addres": {
"value": "str"
}
}
}
}
/* 簡化版 */
GET blak_new/_search
{
"query": {
"prefix" : { "addres" : "str" }
}
}
返回結果
{
"took" : 2,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 389,
"relation" : "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "blak_new",
"_type" : "_doc",
"_id" : "6",
"_score" : 1.0,
"_source" : {
"account_number" : 6,
"balance" : 5686,
"firstname" : "Hattie",
"lastname" : "Bond",
"age" : 36,
"gender" : "M",
"address" : "671 Bristol Street",
"employer" : "Netagy",
"email" : "[email protected]",
"city" : "Dante",
"state" : "TN"
}
}
/* 省略其他結果 */
]
}
}
注意事項
- 加快前綴查詢;可以使用
index_prefixes
參數,加快查詢速度;如果使用,Elasticsearch 會在一個單獨的字段中索引2到5個字符之間的前綴。這使得Elasticsearch 可以以更大的索引爲代價,更有效的運行前綴索引。 - 允許昂貴查詢,如果
search.allow_expensive_queries
設置爲false,則不會執行前綴查詢。但是,如果index_prefixes
啓用,則會構建一個優化的查詢,該查詢並不算慢,儘管有此設置也將執行該查詢。