【发布时间】:2021-12-08 23:46:13
【问题描述】:
我需要 ElasticSearch 查询的帮助,我需要结合应该和必须,但我不知道该怎么做:
这是我想做的查询示例:
ap_code= ["ta", "All"] (OR condition)
AND
ra_code= ["ph", "All"] (OR condition)
AND
city = ["London"]
这是查询,但它从 ES 获取所有结果
"bool" : {
"must" : [
{
"match_phrase" : {
"city" : {
"query" : "London",
"slop" : 0,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
}
],
"should" : [
{
"match_phrase" : {
"ra_code" : {
"query" : "ph",
"slop" : 0,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
},
{
"match_phrase" : {
"ra_code" : {
"query" : "All",
"slop" : 0,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
},
{
"match_phrase" : {
"ap_code" : {
"query" : "All",
"slop" : 0,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
},
{
"match_phrase" : {
"ap_code" : {
"query" : "ta",
"slop" : 0,
"zero_terms_query" : "NONE",
"boost" : 1.0
}
}
}
],
"adjust_pure_negative" : true,
"boost" : 1.0
}
}
我正在使用 Java API 创建查询 (JDK 11)
有什么帮助吗? 提前致谢
【问题讨论】:
标签: java elasticsearch elasticsearch-5