首页 > 其他 > 详细

solr开发之基本操作(增删改查)

时间:2017-04-08 12:27:22      阅读:247      评论:0      收藏:0      [点我收藏+]
package zr.com.util;

import java.io.IOException;

import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrQuery.ORDER;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.util.NamedList;
import org.junit.Test;

/**
 * 
 * @author LF
 *
 */
public class BaseOperation {
    
    /**
     * 删除索引
     * @throws IOException 
     * @throws SolrServerException 
     */
    @Test
    public void deleteTest() throws SolrServerException, IOException{
        // 建立请求
        SolrServer server = new HttpSolrServer("http://192.168.10.105:18080");
        // 删除
        UpdateResponse ur = server.deleteById("448457__ef004ca974cc42b9a7128cb3a2eced3a");
        System.out.println(ur);
        // 提交
        server.commit();
    }
    
    /**
     * 添加索引
     * @throws IOException 
     * @throws SolrServerException 
     */
    @Test
    public void addTest() throws SolrServerException, IOException{
        // 建立请求
        SolrServer server = new HttpSolrServer("http://192.168.10.105:18080");
        // 创建SolrInputDocument对象
        SolrInputDocument document = new SolrInputDocument();
        // 添加相应的域(字段)
        document.addField("id", "15201596724");
        document.addField("courseName", "算法导论");
        document.addField("schoolName", "计算机技术大学");
        server.add(document);
        // 提交
        server.commit();
    }
    
    
    /**
     * 更新
     * @throws IOException 
     * @throws SolrServerException 
     */
    @Test
    public void updateTest() throws SolrServerException, IOException{
        // 建立请求
        SolrServer server = new HttpSolrServer("http://192.168.10.105:18080");
        // 创建SolrInputDocument对象
        SolrInputDocument document = new SolrInputDocument();
        // 添加相应的域(如果id的值不存在,则添加;否则,会先删除原来的数据,再添加)
        document.addField("id", "15201596724");
        document.addField("courseName", "算法导论之算法之美");
        document.addField("schoolName", "计算机技术大学");
        document.addField("schoolShortName", "计算机技术软件工程学院");
        server.add(document);
        // 提交
        server.commit();
    }
    
    /**
     *  查询
     * @throws SolrServerException
     */
    @Test
    public void queryTest() throws SolrServerException{
        // 建立请求
        SolrServer server = new HttpSolrServer("http://192.168.10.105:18080");
        // 创建查询对象
        SolrQuery query = new SolrQuery();
        // 查询语句的处理
//        String queryStr = "id:15201596724";
//        String queryStr = "courseName:算法导论";
//        String queryStr = "courseName:算法导论之算法之美 AND schoolShortName:学院";
        String queryStr = "courseName:算法导论之算法之美 OR schoolShortName:学院";
        query.setQuery(queryStr);
        
        // 分页(起始位置)
        query.setStart(10);
        // 分页(每一页显示的条数)
        query.setRows(5);
        // 排序(降序)
        query.setSort("courseName", ORDER.desc);
        
        //执行查询
        QueryResponse response = server.query(query);
        // 获取响应后的结果集
        SolrDocumentList list = response.getResults();
        for (SolrDocument solrDocument : list) {
            System.out.println(solrDocument);
        }
    }
    
    /**
     *  模糊查询
     * @throws SolrServerException
     */
    @Test
    public void dimQueryTest() throws SolrServerException{
        // 建立请求
        SolrServer server = new HttpSolrServer("http://192.168.10.105:18080");
        // 创建查询对象
        SolrQuery query = new SolrQuery();
        // 查询语句的处理(模糊查询,添加双引号即可)
        String queryStr = "courseName:\"算法导论\" ";
        query.setQuery(queryStr);
        
//        // 分页(起始位置)
//        query.setStart(10);
//        // 分页(每一页显示的条数)
//        query.setRows(5);
//        // 排序(降序)
//        query.setSort("courseName", ORDER.desc);
        
        //执行查询
        QueryResponse response = server.query(query);
        
        // 获取响应后的结果集
        SolrDocumentList list = response.getResults();
        System.out.println(list.size());
        for (SolrDocument solrDocument : list) {
            System.out.println(solrDocument);
        }
    }
    
}

 

solr开发之基本操作(增删改查)

原文:http://www.cnblogs.com/lantu1989/p/6681361.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!