我有一个字段,我想筛选多个值。我目前正在做这与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 –