首页 > 解决方案 > 在 Elasticsearch 中搜索和匹配多个字段?

问题描述

我正在使用 Elasticsearch 搜索多个字段。我想使用 operator 匹配多个字段AND

我的代码在这里。

http://192.168.1.102:9200/storedevents/_search

GET

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "aggregateid": 163
          }
        },
        {
          "term": {
            "entity": "Fornecedor"
          }
        }
      ]
    }
  }
}

我的数据:

id:0bad3af6-0a2b-4cce-a55a-6a5b19ced03f data:{"Id":163,"CreatedAt":"2019-11-07T10:48:07.0809551","UpdatedAt":"2019-11-13T17:12:32.0463481-03:00","DeletedAt":null,"PessoaId":163,"StatusFornecedorId":2,"FornecedorPrincipalId":303,"IntegracaoId":2511361,"IdReduzido":"SFLTDA","Ativo":true,"RazaoSocial":"SINTER FUTURA LTDA","NomeFantasia":"SINTER","Cnpj":"74222563000241","Timestamp":"2019-11-13T17:12:32.1168883-03:00","Entity":"Fornecedor","MessageType":"FornecedorEditedEvent","AggregateId":163} user: - timestamp:Nov 13, 2019 @ 18:12:32.128 entity:Fornecedor messagetype:FornecedorEditedEvent aggregateid:163
_id:0bad3af6-0a2b-4cce-a55a-6a5b19ced03f _type:storedevent _index:storedevents _score: -

响应为空

标签: elasticsearchpostmandsl

解决方案


字段名称区分大小写。我假设您自动映射您的文档(因此您要查找的字段已编入索引)

{
    "query": {
        "bool": {
          "must": [
            {
              "term": {
                "AggregateId": 163
              }
            },
            {
              "term": {
                "Entity": "Fornecedor"
              }
            }
          ]
        }
    }
}

推荐阅读