1

我们的系统中有用户,他们的昵称可以包含逗号,这是 Elasticsearch 用于单独值的特殊字符。我存储了以下用户:

 {
    "nickname" : "John"
 }

 {
    "nickname" : "John,2"
 }

如果我执行查询nickname:John,我会得到两个文件不是预期的。

我不确定我需要什么。我的意思是一个标记器,一个分析器......

提前致谢

4

1 回答 1

2

在 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 /管理索引放置映射/

于 2013-05-21T13:04:09.207 回答