gpt4 book ai didi

java - 如何在 ElasticSearch 中构建不区分大小写的通配符查询?

转载 作者:行者123 更新时间:2023-12-02 11:01:44 26 4
gpt4 key购买 nike

我目前正在尝试编写一个 Elasticsearch 查询,该查询必须不区分大小写,末尾带有通配符,并且它必须在 token 上运行,而不是在纯文本上运行。我尝试使用 WildcardQuery 但似乎没有查询 token 。如果有人知道除了 ElasticSearch 文档之外在哪里寻找更多信息,我将非常感激。

我当前的查询:

SearchSourceBuilder search = SearchSourceBuilder.searchSource()
.size(0)
.query(QueryBuilders.wildcardQuery("myProperty", "*" + term + "*"))
.aggregation(AggregationBuilders
.terms("byBrand")
.field("myProperty")
.size(3));

最佳答案

尝试query_string。这是allowing for a wildcard可以使用,但是说实话,从 ES 的角度来看,将通配符作为第一个元素(运行匹配的 SQL 方式)是错误的方式。我的意思是,它会起作用,但性能可能不是最好的。 ES 是一个搜索引擎,而不是数据库,考虑使用分析器来创建可以匹配您的搜索字符串的标记。例如,使用 ngrams to split your text into tokens然后使用 terms 查询来搜索不带任何通配符的术语。

关于java - 如何在 ElasticSearch 中构建不区分大小写的通配符查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51281584/

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