如何实施'从'开始在elasticsearch 2.x中搜索

时间:2016-10-13 14:55:47

标签: elasticsearch

我有一个要求,我只需要返回那些注释不以字符串开头的记录。 PFB查询和这种方法不起作用。需要帮助

{
  "size": 0, 
  "fields": ["id","comment"], 
  "query": {
    "bool": {
      "must_not": [
        {
          "wildcard": {
            "comment":
              "AG//*"
          }

        }
      ]
    }
   }
}  

1 个答案:

答案 0 :(得分:0)

首先,您应该从查询中删除"size": 0(或设置所需的大小)以查看结果。

现在,在elasticsearch中实施'开头'的最佳方法是使用Prefix Query,如下所示:

{
   "fields": ["id", "comment"],
   "query": {
      "bool": {
         "must_not": [
            {
               "prefix": {
                  "comment": "AG"    <-- No need for any wildcards
               }
            }
         ]
      }
   }
}

注意:前缀查询和通配符查询仅对 not_analyzed 字段有意义,因此请确保您的"comment"字段具有相同的映射。