Solrj——Solr超强客户端

年轻就要对味 2013-06-15

原文http://ilovejavaforever.iteye.com/blog/710996

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过HttpGet操作提出查找请求,并得到XML格式的返回结果。这里主要讲解下通过httpGet请求这种方式。首先,我们就必须通过HTTP请求类似http://localhost:8989/solr/select?q=tags:t5ANDt7&fl=auction_id&start=0&rows=4&sort=auction_iddesc,auction_pointasc的链接,对服务器进行访问。将最终结果以类似流的方式传回客户端。

。。。。。。

Solrj粉墨登场:

在Solr的连接请求,返回结果这一方面,Apache已经为我们提供了Solrj这个工具,我们只需要简单的导入相关包,使用其简单的API就可以轻松对solr进行操作了。

。。。。。。

请求方面:

WithoutSolrj:如果采用http直接访问的方法,我们必然会用到httpclient请求Solr服务器。其中所有的搜索条件都必须通过拼接一个负责冗长的url,例如:q=tags:t5ANDt7&fl=auction_id&start=0&rows=4&sort=auction_iddesc&…&...&…,通过GET的方式,请求服务器。

WithSolrj:面对对象的思想,所有搜索条件均以setter属性的方式设置到其封装的对象当中。但是,实际上还是通过拼接url的方式,走http请求的方式再请求Solr服务器。

Result:本质完全相同,有了Solrj,开发会省很多事,将很多开发中的体力活交给Solrj。但是直接拼接url的方式肯定比对象的方式灵活很多。因为其中不复杂,有兴趣的同学,可以给Solrj加个方法,直接在Solrj最终生成的url上加上任何字符串。

获取结果方面:

WithoutSolrj:结果的返回形式是xml文件,每条记录都会以document节点的形式记录。如果要获得Object对象,我们一般会用Dom4j或者xStream等技术对结果的xml进行解析。

WithSolrj:两种方式,均只有几行代码,直接获得结果。无需解析xml。优点显而易见!

Result:没啥好说,Solrj顶!

说白了:

Solrj仅仅是一个Solr的客户端,简化大家没必要的开发量。原理很简单,实现不复杂,属于专门为Solr造的一个轮子。

相关推荐