弹性通配符搜索不使用空间

use*_*685 2 elasticsearch

我试图从弹性搜索索引进行搜索,使用通配符过滤器,它正常工作,直到我在我的搜索条件中使用"空格".

例如:如果弹性指数中的值是"这是测试值"

当我使用搜索值:"This*" - > Working,当我使用搜索值时取值:"这是*" - >不工作,导致零匹配

我的代码如下所示

QueryBuilders.wildcardQuery(
ElasticSearchUtil.FIELDNAME,searchValue.toLowerCase())

我如何处理空间并使我的搜索成功?

关于UI

imo*_*tov 5

通配符查询仅适用于单个令牌.您要做的是找到一个令牌,后跟另一个令牌,第二个令牌由前缀指定.这可以通过使用匹配短语前缀查询来实现.您的查询将如下所示:

QueryBuilders.matchPhrasePrefixQuery(ElasticSearchUtil.FIELDNAME,searchValue)

请注意,最后searchValue不应该有"*".