我有一個字段,我想篩選多個值。我目前正在做這與terms
過濾器:Elasticsearch術語過濾器,但前綴爲
"filter" : {
"terms" : { "user" : ["kimchy", "elasticsearch"]}
}
但我希望該過濾器匹配的前綴,以及整體而言,這樣的事情(prefixes
只是我pseudocoding我想要的):
"filter" : {
"prefixes" : { "user" : ["kim", "elast"]}
}
還是我不得不求助於多個or
過濾器?
"filter" : {
"or" : {
"filters" : [
{
"prefix" : { "user" : "kim" }
},
{
"prefix" : { "user" : "elast" }
}
],
第二種方法更加合理..因爲在第一種方法中你使用的正則表達式,往往會有點慢,更多的查詢字符串更容易受到語法錯誤的影響。 –
@AnirudhModi前綴搜索完成相同由ES內部方式我認爲,也query_string將內部轉換爲布爾。我同意第二種方法會更快。 – ChintanShah25
前綴搜索工作方式不同..它似乎在搜索時執行該類型,但它已獲得max_expansion,這使得它非常嚴格,因爲在您不會得到期望的結果...它最好使用邊緣ngram –