elasticsearch 弹性搜索突出显示整个单词,而不是单词的一部分
如果查询是elasticsearch 弹性搜索突出显示整个单词,而不是单词的一部分,elasticsearch,autocomplete,elasticsearch,Autocomplete,如果查询是Brid我想在突出显示的字段中获取Bridgitte,而不是整个单词Bridgitte 我的索引如下所示(我已经按照这里的建议添加了ngram分析器) } 这是嵌入的Elasticsearch实例,不确定是否相关 我的问题是这样的 MatchQueryBuilder queryBuilder = matchPhrasePrefixQuery("_all", query).maxExpansions(50); final SearchResponse response = cli
Brid
我想在突出显示的字段中获取Bridgitte
,而不是整个单词Bridgitte
我的索引如下所示(我已经按照这里的建议添加了ngram分析器)
}
这是嵌入的Elasticsearch实例,不确定是否相关
我的问题是这样的
MatchQueryBuilder queryBuilder = matchPhrasePrefixQuery("_all", query).maxExpansions(50);
final SearchResponse response = client.prepareSearch("myindex")
.setQuery(queryBuilder)
.addHighlightedField("mystringproperty3", 0, 0)
.addHighlightedField("mystringproperty4", 0, 0)
.addHighlightedField("myarrayproperty.mystringproperty1", 0, 0)
.setHighlighterRequireFieldMatch(false)
.execute().actionGet();
但它不起作用。我尝试将查询更改为queryStringQuery,但它似乎不支持按单词的一部分进行搜索。有什么建议吗?不可能。弹性搜索对单词进行索引。从标记化的角度来看,您不能在这里做很多事情 您可能需要在搜索结果上编写包装器。(非弹性搜索特定)
MatchQueryBuilder queryBuilder = matchPhrasePrefixQuery("_all", query).maxExpansions(50);
final SearchResponse response = client.prepareSearch("myindex")
.setQuery(queryBuilder)
.addHighlightedField("mystringproperty3", 0, 0)
.addHighlightedField("mystringproperty4", 0, 0)
.addHighlightedField("myarrayproperty.mystringproperty1", 0, 0)
.setHighlighterRequireFieldMatch(false)
.execute().actionGet();