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

Node.js 如何在弹性搜索中写入条件

Node.js 如何在弹性搜索中写入条件,node.js,elasticsearch,Node.js,elasticsearch,我想在弹性搜索中编写一个条件查询。这是我的完整查询,但它没有按预期工作 比如: 仅当票证类型为1时,我想执行搜索个人购买=1。 如何编写此查询?然后您可以执行以下操作: { "query": { "bool": { "minimum_should_match": 1, "should": [ { "bool": { "must": [ { "

我想在弹性搜索中编写一个条件查询。这是我的完整查询,但它没有按预期工作

比如:

仅当票证类型为1时,我想执行搜索个人购买=1。
如何编写此查询?

然后您可以执行以下操作:

{
  "query": {
    "bool": {
      "minimum_should_match": 1,
      "should": [
        {
          "bool": {
            "must": [
              {
                "match": {
                  "ticket_group.ticket_type": 1
                }
              },
              {
                "match": {
                  "ticket_group.individual_purchase": 1
                }
              }
            ]
          }
        },
        {
          "bool": {
            "must_not": [
              {
                "match": {
                  "ticket_group.ticket_type": 1
                }
              }
            ]
          }
        }
      ]
    }
  }
}
上述查询转换为:

票证类型=1和个人购买=1 或票证类型!=1.
如果票证类型!=1?无需检查下一个条件..谢谢,但如果是这样,则应返回所有文档或根本不返回任何文档?然后将返回所有票据您的查询应与imo一样工作。如果不是这样,我建议创建一个包含完整映射的要点、一些示例文档、您测试的查询,并解释结果不正确的原因。到目前为止,使用您的查询,我还无法重现该问题。Val它仍然返回票证,票证类型为1,个人购买=1.
{
  "query": {
    "bool": {
      "minimum_should_match": 1,
      "should": [
        {
          "bool": {
            "must": [
              {
                "match": {
                  "ticket_group.ticket_type": 1
                }
              },
              {
                "match": {
                  "ticket_group.individual_purchase": 1
                }
              }
            ]
          }
        },
        {
          "bool": {
            "must_not": [
              {
                "match": {
                  "ticket_group.ticket_type": 1
                }
              }
            ]
          }
        }
      ]
    }
  }
}