elasticsearch,Python,elasticsearch" /> elasticsearch,Python,elasticsearch" />

如何在Python的弹性搜索中搜索多个OR条件

如何在Python的弹性搜索中搜索多个OR条件,python,elasticsearch,Python,elasticsearch,我必须在弹性搜索中搜索数组中的所有项以及静态细节 弹性搜索索引中的字段:tech\u id,detail,volume tech_id=['qwe1','qwe2','qwe3','qwe4','qwe5','qwe6','qwe7'] 阵列中的技术id数量可能不同。 现在我的搜索必须在技术id和细节的组合中进行,其中技术id变化,而细节保持不变。此组合是或组合。最后,我希望搜索能够提供技术ID和静态细节 tech_ids = ['qwe1', 'qwe2', 'qwe3', 'qwe4', '

我必须在弹性搜索中搜索数组中的所有项以及静态细节

弹性搜索索引中的字段:
tech\u id
detail
volume

tech_id=['qwe1','qwe2','qwe3','qwe4','qwe5','qwe6','qwe7']

阵列中的技术id数量可能不同。 现在我的搜索必须在技术id和细节的组合中进行,其中技术id变化,而细节保持不变。此组合是
组合。最后,我希望搜索能够提供技术ID和静态细节

tech_ids = ['qwe1', 'qwe2', 'qwe3', 'qwe4', 'qwe5', 'qwe6', 'qwe7']
        "query": {
            "bool": {
                "must": [
                    {
                        "match": {
                            "detail": "calci"
                        }
                    },
                    {
                        "match_phrase": {
                            "tech_id": tech_ids[0]
                        }
                    }]
}

我认为,你所追求的是一个布尔应该在布尔必须:

{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "detail": "calci"
          }
        },
        {
          "bool": {
            "should": 
              [{
                "match_phrase": { "tech_id": tid }
              } for tid in tech_ids]
          }
        }
      ]
    }
  }
}

谢谢兄弟。假设这是可行的。我应该如何为它提供一个循环。因为如果数组长度太长,写每个数组都会有点困难。更新了我的答案。这个@TrickOrTreat?@jaspreet chahal需要你的输入兄弟。