我想在弹性搜索中编写条件查询。这是我的完整查询,但它没有按预期工作。
像:
{"query":{"bool":{"must":[{"nested":{"path":"ticket_group","score_mode":"max","inner_hits":{"from":0,"size":10000},"query":{"bool":{"must":[{"range":{"ticket_group.available":{"gte":1}}},{"bool":{"minimum_should_match":1,"should":[{"bool":{"must":[{"match":{"ticket_group.customer_id":1}},{"match":{"ticket_group.ticket_type":1}},{"match":{"ticket_group.individual_purchase":1}}]}},{"bool":{"must_not":[{"match":{"ticket_group.ticket_type":1}}]}}]}},{"terms":{"ticket_group.ticket_type":[1,3,4]}}]}}}}]}},"size":10,"from":0}
我想仅在ticket_type = 1时执行搜索individual_purchase = 1。 我该怎么写这个查询?
答案 0 :(得分: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
}
}
]
}
}
]
}
}
}
以上查询转换为:
ticket_type = 1
和individual_purchase = 1
ticket_type != 1