gpt4 book ai didi

elasticsearch - 部分匹配在此查询中不起作用

转载 作者:行者123 更新时间:2023-11-29 02:54:42 25 4
gpt4 key购买 nike

为什么以下只匹配完全,而不是部分?

    body: {
query: {
filtered: {
filter: {
bool: {
should: [
{ query: { match: { "name": "*"+searchterm+"*" }}},
]
}
}
}
}
}

"*"+searchterm+"*" 应该匹配任何包含 searchterm 的词。即,

item1
item2
0item

但它只匹配单词 exact searchterm 即,只匹配 item。这是为什么?

最佳答案

如果 name 字段使用默认分析器,则在分析阶段丢弃星号通配符。因此,您总是会得到 name 恰好是 sarchterm 的结果。您需要使用 Wildcard query用于匹配 name 字段的值包含 searchterm 的任何文档。

query: {
filtered: {
filter: {
bool: {
should: [
{
query: {
wildcard: {
"name": "*" + searchterm + "*"
}
}
}
]
}
}
}
}

关于elasticsearch - 部分匹配在此查询中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28523112/

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