gpt4 book ai didi

elasticsearch - 字词查询未返回字符串列表的结果

转载 作者:行者123 更新时间:2023-12-03 01:45:32 25 4
gpt4 key购买 nike

我有这个 flex 查询,它无法返回terms.letter_score的期望结果。我确定索引中有可用的匹配项。此查询(不包括letter_score)返回预期的过滤结果,但letter_score不返回任何结果。 (据我所知)唯一的区别是cat_id值是整数与字符串的列表。有什么想法可能是这里的问题吗?我基本上是想让它匹配letter_score列表中的任何值。

谢谢

{
"size": 10,
"query": {
"bool": {
"filter": [
{
"terms": {
"cat_id": [
1,
2,
4
]
}
},
{
"terms": {
"letter_score": [
"A",
"B",
"E"
]
}
}
]
}
}
}

最佳答案

听起来您的letter_score字段是text类型,因此已经过分析,因此 token ABE已存储为abe,因此terms查询与它们不匹配。

同样,在这种情况下,很有可能在索引编制时忽略 token a,因为它是一个停用词,并且standard分析器(默认)会忽略它们(如果您使用的是ES 5+)。

第一种方法是使用match查询代替terms,如下所示:

{
"match": {
"letter_score": "A B E"
}
}

如果仍然无法解决问题,建议您将 letter_score字段的映射更改为 keyword(需要重新索引数据),然后您的查询将像现在一样工作

关于elasticsearch - 字词查询未返回字符串列表的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44313908/

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