如何在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需要你的输入兄弟。