用如下这样的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
來源:简书
著作权归作者所有。
原文:http://www.cnblogs.com/crystaltu/p/7723341.html