solr笔记(一)

一. 什么是solrJ 
    Solrj is a java client to access solr. It offers a java interface to add, update, and query the solr index; 
Solrj是Apache Solr提供的一个基于java端访问solr服务器的相关接口; 
提供对solr服务器进行索引增加、修改、查询、删除和索引优化相关接口; 

二. 使用Solrj 
需要使Solrj必须导入以下Jar包 
可以从http://lucene.apache.org/solr/获取相关资源 

apache-solr-solrj-3.5.0.jar 
apache-solrj-core-3.5.0.jar 
commons-httpclient-3.1.jar 
slf4j-api-1.6.0.jar 
slf4j-jdk14-1.6.1jar 
commons-logging-1.1jar 


三.增加索引
1) 增加索引 
public void addIndex(){ 
try { 
SolrServer server = new CommonsHttpSolrServer("http://192.168.208.119:8389/solr"); 
SolrInputDocument document = new SolrInputDocument(); 
document.addField("id",1, new Float(1.0)); 
document.addField("name", "First"); 
server.add(document); 
server.commit(); 
} catch (MalformedURLException e) { 
e.printStackTrace(); 
} catch (SolrServerException e) { 
e.printStackTrace(); 
} catch (IOException e) { 
e.printStackTrace(); 


        
提交到Solr服务器上的数据必须是 SolrInputDocument 类型 

    2)  JavaBean实体转换成SolrInputDocument 
public class SolrBean { 
@Field 
String id; 
@Field("path") 
String cat; 
public String getId() { 
return id; 

public void setId(String id) { 
this.id = id; 

public String getCat() { 
return cat; 

public void setCat(String cat) { 
this.cat = cat; 


@Field无参数时,匹配当前字段,也可以自定义,字段必须在schema.xml 中的Filed中存在 

addBeans(Collection beans); 
addBean(Object obj); 
3)  SolrDocument转换成JavaBean , DocumentObjectBinder 

SolrDocumentList list = server.query(new SolrQuery("*:*")).getResults(); 
List solrBeanList = server.getBinder().getBeans(SolrBean.class,list); 

4) solr服务器异常情况处理 
   server.add(docs); 
   server.commit(); 
   server必须commit();solr服务器才会增加索引; 
   
   <1> solr服务器正常关闭(直接将部署Solr的Tomcat执行Stop操作) 
   当执行在 server.add()时,将Tomcat Stop, 
   
   因为server.add()时有个进程将数据提交到Solr服务器; 
   所有Solr服务器正常关闭时会自动执行server.commit(); 
   <2> solr服务器非正常关闭 
       当执行在 server.add()时,通过任务管理器将Tomcat结束; 
   在server.add()时的数据将失效; 

5) 将已经存在xml文件提交到solr服务器创建索引 
curl http://localhost:8983/solr/mbartists/update -H 'Content-type:text/xml;charset=utf-8' --data-binary @artists.xml
官方文档只提供了基于命令行方式提交文件格式创建索引 

四、索引修改: 
    Solr中修改机制为删除已经存在的索引,在增加新索引; 
    根据唯一字段来判断索引中是否存在,存在则删除。在添加新索引; 
唯一字段参见 schema.xml 中 <uniqueKey>id</uniqueKey> 
  

猜你喜欢

转载自blog.csdn.net/qq_32778043/article/details/80840773
今日推荐