gpt4 book ai didi

elasticsearch - Elasticsearch通配符查询不支持字段分析器

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

我有一个名为“tag”的字段,该字段在elasticsearch中被分析(默认行为)。 “标签”字段可以有一个单词或逗号分隔的字符串来存储多个标签。例如。 “节日,快速,盛宴”。
现在,例如,如果标签为“节日”,在索引之前,我将其转换为小写(忽略大小写),并将其索引为“节日”。

现在,如果我使用带有所有大写字母的匹配查询进行搜索(如下所述),则结果会很好(符合预期)。

{
"query": {
"match": {
"tag": "FESTIVE"
}
}
}

但是,如果我按如下所述执行通配符查询,则不会得到结果:(
{
"query": {
"wildcard": {
"tag": {
"value": "F*"
}
}
}
}

如果我将通配符搜索中的值字段更改为“f *”而不是“F *”,那么我会得到结果。

有谁知道通配符查询为什么区分大小写?

最佳答案

Wildcard queries属于term level queries,因此未分析。来自文档

Matches documents that have fields matching a wildcard expression (not analyzed)



使用 query string query会获得预期的结果,它将 lowercase这些术语,因为默认情况下 lowercase_expanded_terms为true。试试这个
GET your_index/_search
{
"query": {
"query_string": {
"default_field": "tag",
"query": "F*"
}
}
}

希望这可以帮助!

关于elasticsearch - Elasticsearch通配符查询不支持字段分析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34676220/

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