qianqianling 发表于 2017-12-19 09:31:17

11.solr学习速成之MoreLikeThis

package morelikethis;  

import java.util.ArrayList;  

import java.util.List;  

import org.apache.solr.client.solrj.SolrQuery;  

import org.apache.solr.client.solrj.impl.HttpSolrClient;  

import org.apache.solr.client.solrj.response.QueryResponse;  

import org.apache.solr.common.SolrDocument;  

import org.apache.solr.common.SolrDocumentList;  

import org.apache.solr.common.util.SimpleOrderedMap;  

import solr.solrServer;  

public>@SuppressWarnings("unchecked")public static void search(){  HttpSolrClient server
= solrServer.getServer();  SolrQuery query
= new SolrQuery();  List
<ProductBO> articles = new ArrayList<ProductBO>();  query.setQuery(
"id:1001")  .setParam(
"fl", "id,title,brand_s")//返回的字段  .setParam("mlt", "true")//打开组建
  .setParam("mlt.fl", "title")//用于判断相似的字段
  .setParam("mlt.mindf", "1")//过滤文档数小于1的文档集合
  .setParam("mlt.mintf","1")//过滤单个文档中关键字小于1的文档
  .setParam("mlt.count", "10");
  QueryResponse queryResponse;
  try {
  queryResponse = server.query(query);
  SimpleOrderedMap<SolrDocumentList> mltResults = (SimpleOrderedMap<SolrDocumentList>) queryResponse.getResponse().get("moreLikeThis");
  for(int i=0;i<mltResults.size();i++){
  SolrDocumentList items = mltResults.getVal(i);
  for (SolrDocument doc : items) {

  String>  if(id.equals("1001")){
  continue;//排除自身
  
                  }
  System.out.println(doc.getFieldValue("title").toString());
  }
  }
  } catch (Exception e) {
  e.printStackTrace();
  }
  }
  public static void main(String[] args) {
  search();
  }
  
}
页: [1]
查看完整版本: 11.solr学习速成之MoreLikeThis