我们的系统中有用户,他们的昵称可以包含逗号,这是 Elasticsearch 用于单独值的特殊字符。我存储了以下用户:
{
"nickname" : "John"
}
{
"nickname" : "John,2"
}
如果我执行查询nickname:John
,我会得到两个文件不是预期的。
我不确定我需要什么。我的意思是一个标记器,一个分析器......
提前致谢
我们的系统中有用户,他们的昵称可以包含逗号,这是 Elasticsearch 用于单独值的特殊字符。我存储了以下用户:
{
"nickname" : "John"
}
{
"nickname" : "John,2"
}
如果我执行查询nickname:John
,我会得到两个文件不是预期的。
我不确定我需要什么。我的意思是一个标记器,一个分析器......
提前致谢
在 ElasticSearch 中默认分析字符串字段,这就是为什么您的第二个用户使用 2 个术语进行索引:“John”和“2”并匹配您的nickname:John
查询。
如果您不希望您的昵称被分析(被视为单个字符串),则必须将此字段的映射显式设置为“关键字”。
有关此的更多信息:http ://www.elasticsearch.org/guide/reference/index-modules/analysis/keyword-analyzer/以及有关映射 API 的信息:http ://www.elasticsearch.org/guide/reference/api /管理索引放置映射/