我尝试使用ES search lite来查询包含密钥foo
的数据集。一个例子是:
.../_search?q=+foo:bar\-baz
现在,我的理解是,在+
属性中添加foo
会使此搜索仅返回foo
为bar-baz
的完全匹配。但是,我发现我还会收到其他结果,例如foo-baz
或baz-baz
等。
我在这里做错了什么导致这些其他结果被退回?
编辑:经过一些研究,这可能取决于使用标准分析仪,而不是其他能够阻止和标记术语的东西。
答案 0 :(得分:0)
您的查询是:field" foo"包含bar OR _all不包含baz
请尝试使用此查询,即搜索短语" bar-baz":
_search?q=foo:"bar-baz"
答案 1 :(得分:0)
如果您不想分析字段,可以在映射中指定"index" : "not_analyzed"
。然后,您就可以根据需要搜索完全匹配。
请参阅:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-core-types.html#string