我们的系统中有用户,他们的昵称可以包含逗号,这是Elasticsearch用于单独值的特殊字符。我存储了以下用户:
{
"nickname" : "John"
}
{
"nickname" : "John,2"
}
如果我执行查询nickname:John
,我会得到两份不符合预期的文件。
我不确定我需要什么。我的意思是一个标记器,一个分析器......
提前致谢
答案 0 :(得分: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/admin-indices-put-mapping/