|
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();
}
} |
|
|