`

Solr-关于filter query对高亮功能无效的问题

阅读更多

 Solr

版本为3.6.1,在查询时加入以下条件

SolrQuery query = new SolrQuery();

query.setQuery("*:*");
query.addFilterQuery("content:搜索内容");
query.setHighlight(true); //开启高亮组件
query.addHighlightField("content");//高亮字段
query.setHighlightSimplePre("<font color=\"red\">");//标记
query.setHighlightSimplePost("</font>");

 

以上代码只能得到documentid,始终无法对content这个字段进行高亮。

 

经过测试原来是使用filter query的原因,修改代码如下

SolrQuery query = new SolrQuery();

query.setQuery("content:搜索内容");
query.setHighlight(true); //开启高亮组件
query.addHighlightField("content");//高亮字段
query.setHighlightSimplePre("<font color=\"red\">");//标记
query.setHighlightSimplePost("</font>");

以上代码可以同时得到以idcontent组成的键值对,因此能够实现高亮的功能。

 

得出结论:filter query类似于SQL中的where条件,适用于不需要高亮的查询结果过滤。

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics