elasticsearch,Node.js,elasticsearch" /> elasticsearch,Node.js,elasticsearch" />

Node.js 使用bool必须在一个elasticsearch查询中匹配和匹配

Node.js 使用bool必须在一个elasticsearch查询中匹配和匹配,node.js,elasticsearch,Node.js,elasticsearch,这是我第一次尝试使用elasticsearch,我正在尝试获取所有必须匹配给定参数的文档,并同时使用match_all字段。我的模式如下所示 { "mappings":{ "product":{ "_all":{"enabled":true}, "properties":{ "category":{"type":"text"}, "brand":{"type":"text"}, "model":{"type":"text"}

这是我第一次尝试使用elasticsearch,我正在尝试获取所有必须匹配给定参数的文档,并同时使用match_all字段。我的模式如下所示

{
"mappings":{
  "product":{
    "_all":{"enabled":true},
      "properties":{
        "category":{"type":"text"},
        "brand":{"type":"text"},
        "model":{"type":"text"},
        "description":{"type":"text"}
      }
    }
  }
}
比如说,我想找到所有属于“手机”类别的产品,并且在任何属性中都有“完美”一词。我只使用它没有任何问题

_search

"query": {
  "match": {
    "_all": "perfect"
  }
}

但我找不到一个解决方案来同时将它与匹配类别结合起来。实现这一目标的最佳方式是什么?如果这很重要的话,我正在使用官方的elasticsearch node.js插件。

您必须使用bool query-在这里您可以组合更多属性,这些属性可以被搜索。请参阅elasticsearch文档:

以下是来自doc的示例:

GET _search
{
  "query": {
    "bool": {
      "must": {
        "match_all": {}
      },
      "filter": {
        "term": {
          "status": "active"
        }
      }
    }
  }
}