弹性通配符搜索不适用于 space
Elastic Wild card search not working with space
我正在尝试使用通配符过滤器从弹性搜索索引进行搜索,它可以正常工作,直到我在搜索条件中使用 "space"。
例如:如果弹性指数的值为"This is test value"
当我使用搜索值时:"This*" --> 工作,获取值
当我使用搜索值时:"This is*"--> 不工作,导致零匹配
我的代码如下所示
QueryBuilders.wildcardQuery(
ElasticSearchUtil.FIELDNAME, searchValue.toLowerCase())
我如何处理 space 并使我的搜索成功?
问候
UI
通配符查询仅适用于单个标记。您要做的是找到一个标记,后跟另一个标记,第二个标记由前缀指定。这可以通过使用 match phrase prefix 查询来实现。您的查询将如下所示:
QueryBuilders.matchPhrasePrefixQuery(ElasticSearchUtil.FIELDNAME, searchValue)
请注意 searchValue
末尾不应有“*”。
我正在尝试使用通配符过滤器从弹性搜索索引进行搜索,它可以正常工作,直到我在搜索条件中使用 "space"。
例如:如果弹性指数的值为"This is test value"
当我使用搜索值时:"This*" --> 工作,获取值 当我使用搜索值时:"This is*"--> 不工作,导致零匹配
我的代码如下所示
QueryBuilders.wildcardQuery(
ElasticSearchUtil.FIELDNAME, searchValue.toLowerCase())
我如何处理 space 并使我的搜索成功?
问候 UI
通配符查询仅适用于单个标记。您要做的是找到一个标记,后跟另一个标记,第二个标记由前缀指定。这可以通过使用 match phrase prefix 查询来实现。您的查询将如下所示:
QueryBuilders.matchPhrasePrefixQuery(ElasticSearchUtil.FIELDNAME, searchValue)
请注意 searchValue
末尾不应有“*”。