Elasticsearch通配符查询什么也不返回,为什么?
仍在学习英语。这是我的疑问:Elasticsearch通配符查询什么也不返回,为什么?,search,
elasticsearch,wildcard,Search,
elasticsearch,Wildcard,仍在学习英语。这是我的疑问: { "query": { "wildcard" : { "identifier" : "*NZ*" } } } 我的文档中有一个名为identifier的字段和一个包含NZ的字符串。当我删除查询表达式时,会返回它们 但我在查询时总是收到0次点击。为什么?尝试使用nz小写字母,但为什么呢?因为您的标识符字段可能是一个经过分析的字符串字段,因此ABCNZXYZ将被索引为ABCNZXYZ。通配符查
{
"query": {
"wildcard" : {
"identifier" : "*NZ*"
}
}
}
我的文档中有一个名为identifier
的字段和一个包含NZ
的字符串。当我删除查询
表达式时,会返回它们
但我在查询时总是收到0次点击。为什么?尝试使用nz小写字母,但为什么呢?因为您的
标识符字段可能是一个经过分析的字符串字段,因此ABCNZXYZ
将被索引为ABCNZXYZ
。通配符
查询不会分析您正在搜索的术语,因此您需要搜索*nz*
而不是*nz*
,以匹配您的标识符
。在使用脚本搜索时,您也会遇到同样的问题。@waldemaneto thx。你最好写一个答案,因为它对我很有帮助。试试nz小写字母,这很管用——但为什么呢?因为你的标识符
字段可能是一个经过分析的字符串字段,因此ABCNZXYZ
将被索引为ABCNZXYZ
。通配符
查询不会分析您正在搜索的术语,因此您需要搜索*nz*
而不是*nz*
,以匹配您的标识符
。在使用脚本搜索时,您也会遇到同样的问题。@waldemaneto thx。你最好写下来作为答案,因为这对我有帮助。