Elasticsearch 同时检索单field多个值的查询

 1  想得到所有在tags字段中含有novel或book的文档。运行以下查询来达到目的:

{
    "query" : {
        "terms" : {
            "tags" : [ "novel", "book" ],
            "minimum_match" : 1
        }
    }
}

默认只要匹配其一即可


2  被匹配的should节点数目由minimum_should_match参数控,此参数的值描述了文档被视为匹配时,应该匹配的should子句的最少数量。举例来说,它可以是个整数值,比如2,也可以是个百分比,比如75%。

must:被它封装的布尔查询必须被匹配,文档才会返回

must_not:被它封装的布尔查询必须不被匹配,文档才会返回


{
  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "title": "aa"
          }
        },
        {
          "term": {
            "title": "bb"
          }
        },
        {
          "term": {
            "title": "cc"
          }
        }
      ],
      "minimum_number_should_match": 1
    }
  }
}

 

备注:  

should则是包含的条件里有一个条件为true就返回,这与must不同,must里的条件必须全部为true才能返回

 Java API 的使用—实现term查询、terms查询


 java操作elasticsearch实现条件查询(match、multiMatch、term、terms、reange)


ElasticSearch在Java中实现term查询


ava中实现term查询和terms查询


 

 

 

FR:徐海涛(hunk Xu)
QQ技术交流群:386476712

你可能感兴趣的:(C#)