elastich搜索奇怪的行为,寻找整个短语的前缀,但得到每个词的前缀
我的索引让我说我有一个名为“full_name”的字段字段。我在做下面的查询:elastich搜索奇怪的行为,寻找整个短语的前缀,但得到每个词的前缀
{ "query":{
"bool":{
"must":[
{
"wildcard":{
"full_name":"ab*"
}
}
]
}
},
"size":50
}
它返回一个完全适合的值,例如:
"full_name" : "abrakadabra"
而且我收到这样的事情:
"full_name" : "kad abra"
Wildacrd“AB *“符合”abra“一词,因此我有”full_name“:”kad abra“。我怎样才能避免它,并只搜索第一个字前缀?
回答:
默认情况下应用于字符串的标准分析器会为每个单词生成一个术语。因此,“kad abra”被索引为两个术语“kad”和“abra”,并且您的查询找到第二个术语。如果要将full_name始终作为短语进行搜索,则应使用带有关键字标记器和小写过滤器的自定义分析器对其进行索引。或者,如果案例对您的条款有意义,您可以将此字段索引为not_analyzed。
以上是 elastich搜索奇怪的行为,寻找整个短语的前缀,但得到每个词的前缀 的全部内容, 来源链接: utcz.com/qa/257340.html