Java 如何在ElasticSearch中构建不区分大小写的通配符查询?
我目前正在尝试编写一个Elasticsearch查询,该查询必须不区分大小写,末尾有一个通配符,并且必须在令牌上运行,而不是在纯文本上运行。我尝试使用WildcardQuery,但它似乎没有查询令牌。如果有人对除了ElasticSearch文档之外的更多信息有什么建议,我将不胜感激 我当前的查询:Java 如何在ElasticSearch中构建不区分大小写的通配符查询?,java,
elasticsearch,Java,
elasticsearch,我目前正在尝试编写一个Elasticsearch查询,该查询必须不区分大小写,末尾有一个通配符,并且必须在令牌上运行,而不是在纯文本上运行。我尝试使用WildcardQuery,但它似乎没有查询令牌。如果有人对除了ElasticSearch文档之外的更多信息有什么建议,我将不胜感激 我当前的查询: SearchSourceBuilder search = SearchSourceBuilder.searchSource() .size(0) .query(Quer
SearchSourceBuilder search = SearchSourceBuilder.searchSource()
.size(0)
.query(QueryBuilders.wildcardQuery("myProperty", "*" + term + "*"))
.aggregation(AggregationBuilders
.terms("byBrand")
.field("myProperty")
.size(3));
尝试
查询字符串
。可以使用它,但老实说,从ES的角度来看,将通配符作为第一个元素(运行匹配的SQL方式)是错误的。我的意思是,它会起作用,但性能可能不是最好的。ES是一个搜索引擎,而不是一个数据库,请考虑使用分析器来创建可以匹配搜索字符串的标记。例如,使用然后使用terms
查询来搜索不带任何通配符的术语