solr (增量更新,排序,内容显示不完整)使用总结
从哪开始写呢?
先在这给大家拜个早年吧,哈哈哈。
用过一段时间了,把使用中遇到的问题总结一下;
1.查询时java代码中过滤查询,query.addFilterQuery()方法相当于检索页面的fq
SolrQuery query = new SolrQuery();
String q = "*:*";
if (!param.equals("")) {
q = "title:" + param + "\ndoccont:" + param ;
}
//下面设置solr查询参数
query.set("q", q);// 参数q 查询所有
query.addFilterQuery("labelcode:" + firstLabel);
2.排序,sorts需要在配置文件中设置数字类型,这样就可以正确排序了
<fieldType name="text_int" class="solr.TrieIntField"></fieldType>
<field name="sorts" type="text_int" uninvertible="true" indexed="true" stored="true"/>
query.setSort("sorts", SolrQuery.ORDER.asc);
3.运算符简单实使用
if (!startOffline_time.equals("") && !endOffline_time.equals("")) {
query.addFilterQuery("offline_time:[" + startOffline_time + " TO " + endOffline_time + "]");
} else if (!startOffline_time.equals("") && endOffline_time.equals("")) {
query.addFilterQuery("offline_time:[" + startOffline_time + " TO *]");
} else if (startOffline_time.equals("") && !endOffline_time.equals("")) {
query.addFilterQuery("offline_time:[* TO " + endOffline_time + " ]");
}
4.分页,直接代码吧
//设置分页参数
try {
int newpageno = Integer.parseInt(pageno);
int newpagesize = Integer.parseInt(pagesize);
query.setStart((newpageno - 1) * newpagesize);
query.setRows(newpagesize);
} catch (NumberFormatException e) {
e.printStackTrace();
}
5.设置高亮和内容显示不全问题。
query.setHighlightFragsize(100000);不设置这个,如果你需要显示的内容太多,会显示不全,默认长度是多少,我也忘记了,哈哈,设置了以后内容会全部显示了
query.setHighlight(true);
query.setHighlightFragsize(100000);
query.addHighlightField("title");
query.addHighlightField("doccont");
query.setHighlightSimplePre("<span style='color:red'>");
query.setHighlightSimplePost("</span>");
6.需要分页时,获得数据总数
//获取返回结果
SolrDocumentList resultList = response.getResults();
//获得查询总数量
int totlaNum = (int) resultList.getNumFound();
7.增量更新问题,开始用上面的old那个有问题,于是就改成了下面的new那个,syncCores需要增量更新的工程用 “,” 隔开
#old
#params=/dataimport?command\=full-import&clean\=false&commit\=true
#new
params=/dataimport?command=delta-import&clean=false&commit=true
#需要增量更新的工程
syncCores=lvliang_zsk,lvliang_zsk_hotWord,lvliang_zsk_recommend,lvliang_zsk_label
用了挺长时间了,只能记得折磨多了。
感谢小伙伴耐心看完,有不对的地方欢迎指出。