elasticsearch,Java,elasticsearch" /> elasticsearch,Java,elasticsearch" />

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

Java 如何在ElasticSearch中构建不区分大小写的通配符查询?,java,elasticsearch,Java,elasticsearch,我目前正在尝试编写一个Elasticsearch查询,该查询必须不区分大小写,末尾有一个通配符,并且必须在令牌上运行,而不是在纯文本上运行。我尝试使用WildcardQuery,但它似乎没有查询令牌。如果有人对除了ElasticSearch文档之外的更多信息有什么建议,我将不胜感激 我当前的查询: SearchSourceBuilder search = SearchSourceBuilder.searchSource() .size(0) .query(Quer

我目前正在尝试编写一个Elasticsearch查询,该查询必须不区分大小写,末尾有一个通配符,并且必须在令牌上运行,而不是在纯文本上运行。我尝试使用WildcardQuery,但它似乎没有查询令牌。如果有人对除了ElasticSearch文档之外的更多信息有什么建议,我将不胜感激

我当前的查询:

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

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