Solr笔记五之SolrServer

    

SolrServer

SolrServer是一个抽象类,主要要的实现类有CommonsHttpSolrServer、HttpSolrServer、ConcurrentUpdateSolrServer等,SolrServer类主要用于对索引的创建、添加、删除、修改、查询,因此对于索引的所有操作都是交给SolrServer来完成。CommonsHttpSolrServer类是在Solrj3.5版本之前的(包括3.5版本),而HttpSolrServer是在3.5版本之后的,我们主要以HttpSolrServer为主。其基本用法如下:

 

1.       构造方法

public  HttpSolrServer(String URL)

public  HttpSolrServer(String URL,HttpClient client)

  这里的URL代表我们的地址、client代表客户端,我们通常使用的是第一种构造方法。

2.       添加索引操作

public UpdateResponse  add(SolrInputDocument doc)

public UpdateResponse  add(Collection<SolrInputDocument> collection>

public UpdateResponse  add(Iterator<SolrInputDocument> iterator>

public UpdateResponse  addBean(Object object)

public UpdateResponse addBeans(Collection<?> collection)

以上就是我们添加索引的方法,在add中可以传一个SolrInputDocument的对象,就像我们Lucene中的Document意义,还可以传一个Collection即集合,集合里面就是我们一个一个的SolrInputDocument对象;我们还可以有另外一种添加索引的方法,那就是addBean,即添加一个一个的JavaBean对象,同样我们可以讲一个一个的JavaBean放入到集合中一起添加到索引中去。 这些方法还可以接受一个int型的参数,指定(最大)多长时间后提交索引。

3.       删除索引

public UpdateResponse  deleteById(String  id)

public UpdateResponse  deleteById(List<String>  ids)

public UpdateResponse   deleteByQuery(String query)

删除索引可以直接传入一个ID或者装有ID的List,同样可以传入一个query,此时根据query的值匹配索引然后删除。这些方法也可以同添加索引一样接受第二个int 参数。

4.       public  QueryResponse query(SolrParams pararms)

该方法接受一个SolrParams查询参数,得到一个QueryResponse查询响应,使用QueryResponse可以得到我们的结果。

5.       优化索引

    public UpdateResponse  optimize()

6.       提交索引

public UpdateResponse  commit()

当我们对索引进行了添加、更新、删除操作时,必须使用该方法进行提交。


示例:

HttpSolrServer hss=new HttpSolrServer("http://localhost:8080/solr");

List<SolrInputDocument> list=new ArrayList<SolrInputDocument>();

SolrInputDocument sid=null;

for(int i=0;i<10;i++)
{
sid=new SolrInputDocument();

sid.addField("id", "id_"+i);
sid.addField("uname", "uname_"+i);
if(i%2==0)
  sid.addField("sex", sex.male);
else 
sid.addField("sex", sex.female);

sid.addField("age", i);

sid.addField("hobby", "hobby_"+i);
sid.addField("hobby", "hobby_"+i+1);

list.add(sid);
}
hss.add(list);

hss.commit();
}

}


enum sex{
male,female,
}


你可能感兴趣的:(Solr,SolrServer)