Solr java客户端solrJ的CRUD操作

需要的jar包

这里写图片描述

代码

   public class SolrTest {

    @After
    public void tearDown() throws Exception {
    }
    //添加索引
    @Test
    public void testAdd() throws SolrServerException, IOException {
        //创建和solr服务器的连接
        String url="http://localhost:8080/solr";
        SolrServer solrServer=new HttpSolrServer(url);
        //创建一个文档对象
        SolrInputDocument document = new SolrInputDocument();
        document.addField("id","solr001");
        document.addField("product_name", "魅族手机");
        document.addField("product_price", 3000);
        solrServer.add(document);
        solrServer.commit();
    }
    //根据id删除
    @Test
    public void deleteDocumentById() throws Exception{
        //创建和solr服务器的连接
        String url="http://localhost:8080/solr";
        SolrServer solrServer=new HttpSolrServer(url);
        solrServer.deleteById("solr001");
        solrServer.commit();
    }
    //删除全部
    @Test
    public void deleteAll()throws Exception{
        //创建和solr服务器的连接
        String url="http://localhost:8080/solr";
        SolrServer solrServer=new HttpSolrServer(url);
        solrServer.deleteByQuery("*:*");
        solrServer.commit();
    }
    //更新和添加一样 略
    @Test
    public void testSearch() throws Exception{
        //创建和solr服务器的连接
        String url="http://localhost:8080/solr";
        SolrServer solrServer=new HttpSolrServer(url);
        //创建查询对象 SolrQuery是SolrParams 的子类
        SolrQuery solrQuery = new SolrQuery();
        //solrQuery.set("q", "*:*");
        //solrQuery.setQuery("*:*");
        //设置默认搜索域
        solrQuery.set("df", "product_name");
        //设置查询条件
        solrQuery.setQuery("手机");
        //设置过滤条件
        solrQuery.addFilterQuery("product_price:[100 TO 6600]");
        //设置排序条件
        solrQuery.setSort("product_price", ORDER.asc);
        //设置分页条件
        solrQuery.setStart(0);
        solrQuery.setRows(10);
        //设置显示的域
        solrQuery.setFields("id","product_name","product_price");
        solrQuery.setHighlight(true);
        solrQuery.addHighlightField("product_name");
        solrQuery.setHighlightSimplePre("<span style='color:red'>");
        solrQuery.setHighlightSimplePost("</span>");
        //执行查询
        QueryResponse queryResponse = solrServer.query(solrQuery);
        //取文档列表
        SolrDocumentList results = queryResponse.getResults();
        System.out.println("查询结果总量:"+results.getNumFound());
        //遍历查询结果
        for (SolrDocument solrDocument : results) {
            System.out.println(solrDocument.get("id"));
            System.out.println(solrDocument.get("product_name"));
            System.out.println(solrDocument.get("product_price"));
            System.out.println(solrDocument.get("product_catalog_name"));
            System.out.println(solrDocument.get("product_picture"));
            Map<String, Map<String, List<String>>> highlighting = queryResponse.getHighlighting();
            //key 域名
            Map<String, List<String>> map = highlighting.get(solrDocument.get("id"));
            List<String> list = map.get("product_name");
            System.out.println(list.get(0));
            System.out.println("--------------");

        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值