gpt4 book ai didi

elasticsearch - 在数组中搜索时在Elasticsearch中进行“bool”过滤

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

我对Elasticsearch中的过滤器的理解有问题,我正在尝试构建一个过滤器来搜索具有嵌套数组的索引。

     "bParams": {
"bParamList": [
{
"bParamId": 298,
"year": 2008,
"quarter": 4,
"value": 239698
},
{
"bParamId": 298,
"year": 2009,
"quarter": 4,
"value": 453
},
{
"bParamId": 298,
"year": 2007,
"quarter": 4,
"value": 190000
},
{
"bParamId": 304,
"year": 2009,
"quarter": 4,
"value": 7000
}
]
}

请求是:
 {
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"term": {
"bParams.bParamList.year": [ 2007 ]
}
},
{
"range": {
"bParams.bParamList.value": {
"from": 1,
"to": 453
}
}
},
{
"term": {
"bParams.bParamList.bParamId": [ 304 ]
}
}
]
}
}
}
}
}

我希望查询将不会返回任何结果,但是会返回结果。我知道有些元素具有适当的值(value)。我需要同时考虑所有请求参数。

最佳答案

您将需要使用nested -mapping,并且必须重新索引才能添加它。

没有nested,索引的内容基本上等同于此:

{
"bParams": {
"bParamList": {
"bParamId": [298, 298, ...],
"year": [2008, 2009, ...],
"quarter": [4, 4, ...],
"value", [239698, 453, ...],
}
}
}

关于elasticsearch - 在数组中搜索时在Elasticsearch中进行“bool”过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24118826/

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