Elasticsearch全文检索,高亮关键字
Posted Hail Hydra
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch全文检索,高亮关键字相关的知识,希望对你有一定的参考价值。
问题
用如下这样的term方式,可以高亮
.setQuery(QueryBuilders.termQuery("PARAM_NAME", "a")) { "query": { "term": { "body.priority": "error" } }, "highlight" : { "fields" : { "*" : {} } } }
用如下这样queryString方式,高亮无效
.queryStringQuery("asdf")) { "query" : { "query_string" : { "query" : "ERROR" } }, "highlight" : { "fields" : { "*" : {} } } }
解决
增加require_field_match:false,之后匹配的field设置为false之后可以高亮了。
{ "query": { "query_string": { "query": "test" } }, "highlight": { "require_field_match": false, "explain": true, "fields": { "*": {} } } }
api修改
String query = "{\"query\": {\"query_string\": {\"query\": \"test\"}}}"; SearchRequestBuilder builder = client.prepareSearch("twitter").setTypes("tweet").setQuery(query) .addHighlightedField("*") .setHighlighterRequireFieldMatch(false) .setSize(10); SearchResponse response = builder.execute().actionGet();
作者:水他
链接:http://www.jianshu.com/p/342119123d64
來源:简书
著作权归作者所有。
以上是关于Elasticsearch全文检索,高亮关键字的主要内容,如果未能解决你的问题,请参考以下文章
springboot集成elasticsearch全文搜索高亮显示实践
springboot集成elasticsearch全文搜索高亮显示实践
springboot集成elasticsearch全文搜索高亮显示实践
Elasticsearch 带中文分词的全文检索(分页+高亮返回)