SolrJf复杂条件查询

public static SearchResult search(SolrQuery query) throws SolrServerException { SearchResult searchResult = new SearchResult(); //创建SolrServer SolrServer solrServer = new HttpSolrServer("http://192.168.25.131:8080/solr");
//创建一个SolrQuery对象          SolrQuery query = new SolrQuery();          //设置查询条件          query.setQuery(keyword);         if(page <= 0) page = 1;         int start = (page - 1) * row;         query.setStart(start); //设置分页:起始页         query.setRows(row); //设置分页:页面大小         query.set("df", "item_title"); //设置默认搜索域,若不指定默认搜索域,默认从text中找         query.setHighlight(true); //开启高亮         query.addHighlightField("item_title"); //设置高亮的域         query.setHighlightSimplePre("<em style=\"color:red\">"); //设置高亮的前缀         query.setHighlightSimplePost("</em>"); //设置高亮的后缀
//执行查询  QueryResponse queryResponse = solrServer.query(query); //取文档列表,取查询结果总记录数 SolrDocumentList results = queryResponse.getResults(); long num = results.getNumFound(); searchResult.setRecourdCount(num); List<SearchItem> list = new ArrayList<>(); //取高亮 Map<String, Map<String, List<String>>> highlighting = queryResponse.getHighlighting(); //遍历文档列表,从中取出域的内容 for (SolrDocument solrDocument : results) { SearchItem item = new SearchItem(); item.setId((String) solrDocument.get("id")); item.setCategory_name((String) solrDocument.get("item_category_name")); item.setImage((String) solrDocument.get("item_image")); item.setSell_point((String) solrDocument.get("item_sell_point")); item.setPrice((long) solrDocument.get("item_price")); //取高亮显示 List<String> list2 = highlighting.get(solrDocument.get("id")).get("item_title"); String title = ""; if(list2 != null && list2.size() > 0) { title = list2.get(0); }else { title = (String) solrDocument.get("item_title"); } item.setTitle(title); list.add(item); } searchResult.setItemList(list); return searchResult; }
public class SearchResult implements Serializable{

	private long recourdCount;
	private int totalPages;
	List<SearchItem> itemList;
	public long getRecourdCount() {
		return recourdCount;
	}
	public void setRecourdCount(long recourdCount) {
		this.recourdCount = recourdCount;
	}
	public int getTotalPages() {
		return totalPages;
	}
	public void setTotalPages(int totalPages) {
		this.totalPages = totalPages;
	}
	public List<SearchItem> getItemList() {
		return itemList;
	}
	public void setItemList(List<SearchItem> itemList) {
		this.itemList = itemList;
	}
	public SearchResult() {
		super();
		// TODO Auto-generated constructor stub
	}
	public SearchResult(long recourdCount, int totalPages, List<SearchItem> itemList) {
		super();
		this.recourdCount = recourdCount;
		this.totalPages = totalPages;
		this.itemList = itemList;
	}
	@Override
	public String toString() {
		return "SearchResult [recourdCount=" + recourdCount + ", totalPages=" + totalPages + ", itemList=" + itemList
				+ "]";
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值