51.多条件组合查询

Posted Outback

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51.多条件组合查询相关的知识,希望对你有一定的参考价值。

主要知识点:

  • bool组合查询
  • bool和filter组合查询
  • bool,filter嵌套查询
  • 直接用filter查询,并以_score排序

   

   

一、bool组合查询

GET /website/article/_search

{

"query": {

"bool": {

"must": [

{

"match": {

"title": "elasticsearch"

}

}

],

"should": [

{

"match": {

"content": "elasticsearch"

}

}

],

"must_not": [

{

"match": {

"author_id": 111

}

}

]

}

}

}

二、boolfilter组合查询

{

"bool": {

"must": { "match": { "title": "how to make millions" }},

"must_not": { "match": { "tag": "spam" }},

"should": [

{ "match": { "tag": "starred" }}

],

"filter": {

"range": { "date": { "gte": "2014-01-01" }}

}

}

}

   

boolmustmust_notshouldfilter

   

每个子查询都会计算一个document针对它的相关度分数,然后bool综合所有分数,合并为一个分数,filter是不会计算分数

   

三、bool,filter嵌套查询

{

"bool": {

"must": { "match": { "title": "how to make millions" }},

"must_not": { "match": { "tag": "spam" }},

"should": [

{ "match": { "tag": "starred" }}

],

"filter": {

"bool": {

"must": [

{ "range": { "date": { "gte": "2014-01-01" }}},

{ "range": { "price": { "lte": 29.99 }}}

],

"must_not": [

{ "term": { "category": "ebooks" }}

]

}

}

}

}

四、直接用filter查询,并以_score排序

GET /company/employee/_search

{

"query": {

"constant_score": {

"filter": {

"range": {

"age": {

"gte": 30

}

}

}

}

}

}

以上是关于51.多条件组合查询的主要内容,如果未能解决你的问题,请参考以下文章

Django model 遇到查询条件组合比较多的情况下怎么写

MySQL例题一 综合案例(多条件组合查询)

MySQL例题一 综合案例(多条件组合查询)

ibatis动态多条件组合查询以及模糊查询

14、match all 等查询类型,多条件组合查询和利用filter进行查询的优化

多条件动态LINQ 组合查询