liukun2009 发表于 2018-11-1 13:15:20

Solr示例

import java.util.*;  
import org.apache.solr.client.solrj.*;
  
import org.apache.solr.client.solrj.impl.*;
  
import org.apache.solr.client.solrj.response.*;
  
import org.apache.solr.common.*;

  
public>  public static void main(String[] args)throws Exception{
  String url = "http://localhost:8983/solr";
  SolrServer server = new CommonsHttpSolrServer(url);
  server.deleteByQuery( "*:*" );
  SolrInputDocument doc1 = new SolrInputDocument();
  doc1.addField( "id", "book1" );
  doc1.addField( "name", "倚天屠龙记");
  doc1.addField( "price", 29 );
  SolrInputDocument doc2 = new SolrInputDocument();
  doc2.addField( "id", "book2" );
  doc2.addField( "name", "神雕侠侣" );
  doc2.addField( "price", 20 );
  SolrInputDocument doc3 = new SolrInputDocument();
  doc3.addField( "id", "book3");
  doc3.addField( "name", "天龙八部");
  doc3.addField( "price", 33.8 );
  SolrInputDocument doc4 = new SolrInputDocument();
  doc4.addField( "id", "book4" );
  doc4.addField( "name", "射雕英雄传");
  doc4.addField( "price", 25.5 );
  List docs = newArrayList();
  docs.add(doc1);
  docs.add(doc2);
  docs.add(doc3);
  docs.add(doc4);
  server.add(docs);
  server.commit();
  SolrQuery query = new SolrQuery();
  query.setQuery( "name:天" );
  query.setStart(0);
  query.setRows(5);
  query.addSortField( "price", SolrQuery.ORDER.desc );
  query.setHighlight(true);
  query.addHighlightField("name");
  query.setHighlightSimplePre("");
  query.setHighlightSimplePost("");
  query.set("hl.usePhraseHighlighter",true);
  query.set("hl.highlightMultiTerm",true);
  query.set("hl.snippets",3);
  query.set("hl.fragsize", 5);
  QueryResponse rsp = server.query( query );
  System.out.println(rsp);
  SolrDocumentList docsList = rsp.getResults();
  //获取高亮结果
  Map hl = rsp.getHighlighting();
  for(Iterator doc =docsList.iterator();doc.hasNext();){
  SolrDocument d = doc.next();
  System.out.print(d.getFieldValue("id")+":");
  System.out.println(d.getFieldValue("name"));
  }
  }
  
}


页: [1]
查看完整版本: Solr示例