在ElasticSearch中使用AND查询字段

时间:2019-02-27 15:08:46

标签: elasticsearch

在我的ElasticSearch文档索引中,我有一个属性type,例如

type= LOCATION | PERSON | TIME

和一个代表整个文档的text字段。

要搜索LOCATION之类的类型和“ Mountain View”之类的特定文本,我喜欢

doc.text:Mountain View AND doc.type:LOCATION

如果我想进行OR查询,我会改用

之类的query_string方法
"query": {
                        "query_string": {
                            "query": "entity.text: (Mountain View OR Menlo Park) AND entity.type:LOCATION"
                        }
                    }

这也可以。要进行AND查询,就像搜索item.text既具有“ Mountain View”又具有“ Menlo Park”的item.type=LOCATION一样,

"query": {
                        "query_string": {
                            "query": "entity.text: (California AND Nevada) AND entity.type:LOCATION"
                        }
                    }

其他尝试是:

bool子句与should一起使用,例如:

{
                    "query": {
                      "bool": {
                        "should": [
                          { "match": { "text": "Menlo Park" }},
                          { "match": { "text": "Mountain View" }}
                        ]
                      }
                    }
                  }

cross-fieldsmulti_match一起使用

"query": {
                      "multi_match": {
                        "query": "California Nevada",
                        "type": "cross_fields",
                        "operator": "AND",
                        "fields": [
                          "text"
                        ]
                      }
                    }

另一种方法是将musttype一起使用(在这种情况下,省略{ "query": { "bool": { "must": [ { "multi_match" : { "query": "Nevada", "type": "cross_fields", "fields": [ "text"], } }, { "multi_match" : { "query": "California", "type": "cross_fields", "fields": [ "text" ] } } ] } } } ):

should

,但也不会返回任何结果。请注意,在最后一种情况下,使用must而不是OR将产生一个AND查询,该查询可以正常工作。

那么如何在同一字段text上执行California查询以匹配多个值,如Nevadasudo docker stop $(stop docker ps -a -q)

1 个答案:

答案 0 :(得分:1)

如果我理解正确的问题,我将执行以下操作:

I/flutter (16705): build item 43693
I/flutter (16705): build item 43694
I/flutter (16705): build item 43695...

Documentation 希望对您有帮助!