【发布时间】:2016-08-30 14:50:11
【问题描述】:
我正在使用 ES 创建一个预先输入的搜索。我想部分匹配我有一个 ngram 分析器。此外,我希望在字段开头匹配的内容更高,因此我有一个提升的 prefix_phrase 查询。
我的问题是我需要查询 prefix_phrase 中的原始值,否则它将匹配所有匹配的 ngram,而不是给我想要的。
例子:
emails: [test_123@gmail.com, 123_something@facebook.com]
search: 123
我希望123_something 先回来。但是由于 ngram 分析器,值 123@gmail.com 也匹配前缀查询。
有没有办法查询分析字段的原始值(也就是实际存储在文档中的值)
类似的东西
{
match: {
query: 123
type: 'prefix'
fields: ["email"]
original: 1
}
}
还是只需要将原始值存储在单独的字段中?
这个答案:search a analyzed field through the stored original value in elasticsearch 指向不存在的文档。看起来多字段值已被弃用。
【问题讨论】:
标签: elasticsearch