JAVA操作solr的实现其实很简单,但是很多细节要注意,在实际的开发中,很多人喜欢自己封装这些基础的方法以一个全新的“面貌”出现,其实都是一回事,操作熟了自然就会想到将一些实现功能用到的方法重新封装,这也是编程进阶的表现。

SolrJ的使用

     覆盖了solr的全部功能,下面将自己在实际开发中所使用的程序粘贴出来并适当加以解释,由于本人比较菜,代码书写不是那么的精练,还请见谅。

1、 创建solrserver对象:

try {
             
             
              solr.setDefaultMaxConnectionsPerHost(100);

             

      

             请检查tomcat服务器或端口是否开启!");

             

      

2、 添加索引

Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();

      

             

             设置每个字段不得为空,可以在提交索引前进行检查

             

                    

                    在这里请注意date的格式,要进行适当的转化,上文已提到

                    

                     …………

                    

             

      

      

             

             对索引进行优化

             

             

      

             

      

3、 使用bean对象添加索引

      创建一个对应于solr索引的类别:

     

           

           

            …………

           

                 

           

           

                 

           

            …………

           

           

     

      使用数据创建bean对象列表,

      try {

            

            

      

                          

                   

            

      索引提交完毕。

4、 删除索引

      据查询结果删除:     

      try {

                   删除所有的索引

                   

                   

            

                   

            

      根据索引号删除索引:

     

                   

                   

            

                   

            

5、 查询

     提供的查询功能比较强大,可以进行结果中查询、范围查询、排序等。

      下面是笔者封装的一个查询函数:

     

     

                   

            检测输入是否合法

            

                   

            

            

                   

            

            

            

            

                   初始化查询对象

                   

                   

                          

                   

                   设置起始位置与返回结果数

                   

                   

                   设置排序

                   

                          

                                 

                          

                                 

                          

                   

                   设置高亮

                   

                           开启高亮组件

                           高亮字段

                           标记

                          

                          结果分片数,默认为1

                          每个分片的最大长度,默认为100

                   

            

                   

            

            

            

                   

            

                   

                   

            

            返回查询结果

            

     

      补充一下范围查询的格式:[star t TO end],start与end是相应数据格式的值的字符串形式,“TO”    一定要保持大写!

6、 读取查询结果

     读取返回结果:

     

     读取返回结果:

     

      读取高亮显示结果:

                   

                   

                          

                   

                   

                   即为上面定义的bean类

                   

                   

                          的键为Item的id,值唯一,我们设置的高亮字段为title

                          

                          

                                 

                          

                   

7、 Facet的一个应用:自动补全

     为前缀,min为最大返回结果数

     

            

            

            

            

            为solr中的层次分类查询

            

                   

                          

                          排除单个字