solr3.5 查询排序

使全文检索查询数据经常要涉及到排序和条件查询,下面简单介绍常用的排序和查询方式。

 


SolrServer solr = SolrUtil.getSolrServer();

//获取查询对象
SolrQuery query = new SolrQuery();

//设置查询关键字

query.setQuery("content:程序员");
//设置查询返回的字段
query.setParam("fl", "createdAt,content");

//翻页设计参数:起始行,每行返回条数
query.setParam("start", "100");
query.setParam("rows", "10");

//字段排序
query.addSortField("createdAt", SolrQuery.ORDER.desc );

//时间条件查询

query.addFilterQuery("createdAt:[2011-01-01T00:00:01Z"+" TO 2013-01-01T00:00:01Z]");

//高亮显示
query.setHighlight(true).setHighlightSnippets(1);
 

 需要注意,如果需要对field进行排序就必须在schema.xml中对该field进行配置格式如下:

 

<field name="createdAt" type="pdate" stored="true" indexed="true" multiValued="false" required="true"/>
 

其中  indexed="true表示运行被检索, multiValued="false" 不存在多值,默认为“true” 多值,多值无法排序。

 高亮显示需要在solrconfig.xml中进行配置,修改为如下格式即可:

 

<formatter name="html" 
default="true"
class="solr.highlight.HtmlFormatter">
<lst name="defaults">
<str name="hl.simple.pre"><![CDATA[<font class='highlight'>]]></str>
<str name="hl.simple.post"><![CDATA[</font>]]></str>
</lst>
</formatter>

 

To be continue;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值