gpt4 book ai didi

elasticsearch - 带有Must(and)应该(或)不产生期望结果的Elasticsearch查询

转载 作者:行者123 更新时间:2023-12-03 00:46:03 30 4
gpt4 key购买 nike

我正在尝试执行X AND(y OR z)的查询
我需要获得该代理为上市代理或卖方的所有已售属性(property)。

我只用 bool(boolean) 值就可以得到9324个结果。当我添加 bool(boolean) 值时,我会得到相同的结果集9324。ID为140699的代理应该只有大约100个结果。我也尝试过 bool(boolean) 过滤器,但没有成功。当用过滤器替换should时,结果就像是另一个bool must一样,而且我仅在代理为发布代理而卖方为代理的情况下得到结果

GET /property/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"statusCatID": {
"value": "Sold"
}
}
},
{
"range": {
"closingDate": {
"gte": "now-3M"
}
}
}
],
"should": [
{
"term": {
"listAgent1": {
"value": 140699
}
}
},
{
"term": {
"sellingAgent1": {
"value": 140699
}
}
}
]
}
},
"size": 300
}

最佳答案

使用您的符号,您将执行如下查询:

(statuscatid:sold AND closingDate:now-3M OR listAgent1:140699 OR sellingAgent1:140699)

我建议您阅读 this official blog post以便更好地了解Elastic中的 bool(boolean) 查询。如果您想要这样的查询:
(statuscatid:sold AND closingDate:now-3M) AND (listAgent1:140699 OR sellingAgent1:140699)

您应该这样写:
{
"query": {
"bool": {
"must": [
{
"term": {
"statusCatId": "sold"
}
},
{
"range": {
"closingDate": "now-3M"
}
},
{
"bool": {
"should": [
{
"term": {
"listAgent1": 140699
}
},
{
"term": {
"sellingAgent1": 140699
}
}
]
}
}
]
}
},
"size": 300
}

关于elasticsearch - 带有Must(and)应该(或)不产生期望结果的Elasticsearch查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61275510/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com