返回与ElasticSearch的完全匹配

时间:2014-09-11 10:44:48

标签: elasticsearch dataset url-routing

我尝试使用ES search lite来查询包含密钥foo的数据集。一个例子是:

.../_search?q=+foo:bar\-baz

现在,我的理解是,在+属性中添加foo会使此搜索仅返回foobar-baz的完全匹配。但是,我发现我还会收到其他结果,例如foo-bazbaz-baz等。

我在这里做错了什么导致这些其他结果被退回?

编辑:经过一些研究,这可能取决于使用标准分析仪,而不是其他能够阻止和标记术语的东西。

2 个答案:

答案 0 :(得分:0)

  • &#34 +富"是指AND field foo
  • " - "意思不是
  • 默认运算符是OR

您的查询是: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