Elasticsearch全文檢索,高亮關鍵字
阿新 • • 發佈:2017-10-24
code spa nsh pes lds exp response sets highlight
問題
用如下這樣的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全文檢索,高亮關鍵字