0

我正在尝试查询其中包含边缘 ngram 的 Elasticsearch 包装的 Lucene 索引,并且无法理解文档以弄清楚如何对其应用布尔运算符。我有这个:

{
  "query":{
  "bool":{
    "should":[
      {
        "match":{
          "name.partial":"+henry +james"
        }
      }
    ]
  }
}}

那是行不通的(我得到了有 henry 和没有 james 的结果,反之亦然),“henry james”或 henry AND james 也没有——无论如何我都会得到同样的结果。如何获得我想要的行为?

4

1 回答 1

0

您应该为此使用query_string查询。如果您使用匹配查询,我认为您唯一能做的就是指定查询和要使用的运算符,如下所示:

{
    "match" : {
        "message" : {
            "query" : "this is a test",
            "operator" : "and"
        }
    }
}
于 2013-01-12T06:42:57.233 回答