高亮、分页、排序、过滤查询
//关键字主查询 高亮查询
HighlightQuery query = new SimpleHighlightQuery();
Criteria name = new Criteria("name").is(name);
(name);
//条件过滤查询,对结果过滤
if (type!==""){
FilterQuery filterQuery=new SimpleFilterQuery();
Criteria criteriaType = new
Criteria("type").is(type);
(criteriaType);
(filterQuery);
}
//高亮字段
HighlightOptions highlightOptions = new HighlightOptions();
("name");
("info");
("<span style='color:blue'>");
("</span>");
(highlightOptions);
//分页
((pageNum-1,pageSize));
//排序
(("xxx").descending());
Page<XXX> highlightPage = (solr_core, query, );
//解析高亮结果
List<HighlightEntry<XXX>> highlighted = ((HighlightPage<XXX>) highlightPage).getHighlighted();
for (HighlightEntry<SolrData> itemHighlightEntry : highlighted) {
//包含高亮文档
XXX item = ();
//高亮的数据
List<> highlights = ();
if(highlights != null && () >0) {
//多字段高亮
for (int i = 0; i < () ; i++) {
//域的高亮数据
highlight = (i);
Field field = ();
if (().equals("name")){
String title = ().get(0);
(title);
}
else {
String title = ().get(0);
(title);
}
}
}
}
List<XXX> content = ();
facet统计
SimpleFacetAndHighlightQuery simpleFacetAndHighlightQuery = new SimpleFacetAndHighlightQuery();
(new SimpleStringCriteria("*:*"));
FilterQuery filterQuery = new SimpleFilterQuery();
Criteria criteriaType = new Criteria("域字段").is("参数");
(criteriaType);
(filterQuery);
FacetOptions facetOptions = new FacetOptions();
//设置分类的域字段
("域字段");
//分类返回的条数,默认为10
(20);
(facetOptions);
((0, 100));
Page<存入sorl对应的类> highlightPage = (solr_core, simpleFacetAndHighlightQuery, "存入sorl对应的类".class);
Page<FacetFieldEntry> facetResultPage = ((FacetAndHighlightPage<存入sorl对应的类>) highlightPage).getFacetResultPage("域字段");