gpt4 book ai didi

elasticsearch - 使用输入数组进行Elasticsearch过滤,其中

转载 作者:行者123 更新时间:2023-12-02 23:48:01 25 4
gpt4 key购买 nike

我们的要求是通过将输入数组提供给elasticsearch来按数据的数组字段过滤对象。任何组合输入数组元素都与提及数组匹配。
小例子

data:[
{"name": "xxxx", "mentions": ["X", "Y"]},
{"name": "yyyy", "mentions": ["K", "L", "M"]},
{"name": "zzz", "mentions": ["X", "L"]},
]
Input: [X, Y, K, L]
Output:[
{"name": "xxxx", "mentions": ["X", "Y"]},
{"name": "zzz", "mentions": ["X", "L"]}
]
必须根据 提到的字段过滤对象,其中提到数组的每个成员必须位于给定的输入数组中,如果存在任何不一致,则忽略该对象。
条款查询或必须字段不能解决我们的问题。

最佳答案

一个非常简单的解决方案是在Regex Expression中使用Regex Query:

以下是您的查询内容:

POST <your_index_name>/_search
{
"query": {
"bool": {
"must_not": [ <---- Note this.
{
"regexp": {
"mentions": "[^XYKL]" <---- Note this.
}
}
]
}
}
}

方括号 [...]表示要匹配出现的字符之一。

我所做的只是在括号内使用了 Negate Character ^,然后将Regex Logic包裹在 Bool Querymust_not子句中,它应该可以为您提供所需的内容。

该查询将仅返回带有 X Y K L值的文档。除此以外的任何其他值,都不会返回这些文档。

请注意,我假设字段 mentionskeyword类型。

关于elasticsearch - 使用输入数组进行Elasticsearch过滤,其中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59809220/

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