java操作solr

一、导包

        <dependency>
            <groupId>org.apache.solr</groupId>
            <artifactId>solr-solrj</artifactId>
            <version>4.10.3</version>
        </dependency>
        
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>

二、增改

     public static void testAdd() throws IOException, SolrServerException {

        String baseurl="http://localhost:8080/solr";
        SolrServer solrServer=new HttpSolrServer(baseurl);

//        简单demo
        SolrInputDocument document=new SolrInputDocument();
        document.setField("id","haha");
        document.setField("name","要要要");
        solrServer.add(document);

//        增加实体
        Product product=new Product();
        product.setId(100000L);
        product.setProduct_name("实体测试2");
        product.setProduct_catalog_name("测试2");
        solrServer.addBean(product);
        solrServer.commit();

        solrServer.commit();
    }

三、删

public static void testdelete() throws IOException, SolrServerException {
    String baseurl="http://localhost:8080/solr";
    SolrServer solrServer=new HttpSolrServer(baseurl);
    solrServer.deleteByQuery("id:haha",1000);

}

四、查

   public static void testServer() throws IOException, SolrServerException {
        String baseurl="http://localhost:8080/solr";
        SolrServer solrServer=new HttpSolrServer(baseurl);

        SolrQuery solrQuery=new SolrQuery();
//        设置查询参数
        solrQuery.set("q","product_name:台灯");
//        solrQuery.setQuery("product_name:台灯");

//        设置过滤条件
        solrQuery.set("fq","product_catalog_name:雅致灯饰");
//     设置排序
        solrQuery.addSort("product_price", SolrQuery.ORDER.desc);
//        设置分页
        solrQuery.setStart(0);
        solrQuery.setRows(5);
//设置默认域
        solrQuery.set("df","product_name");
//只查询指定域
        solrQuery.set("fl","id,product_name");

//       打开开关
        solrQuery.setHighlight(true);
        solrQuery.addHighlightField("product_name");
        solrQuery.setHighlightSimplePre("<span style='color:red'>");
        solrQuery.setHighlightSimplePost("<span>");

        QueryResponse response=solrServer.query(solrQuery);

        SolrDocumentList docs=response.getResults();

        long numFonud=docs.getNumFound();
        System.out.println("numFonud :"+numFonud);

        Map<String, Map<String, List<String>>> highlighting = response.getHighlighting();

        for (SolrDocument doc:docs) {
            System.out.println(doc.get("id"));
            System.out.println(doc.get("product_name"));
            System.out.println(doc.get("product_price"));
            System.out.println(doc.get("product_catalog_name"));

            Map<String, List<String>> map=highlighting.get(doc.get("id"));
            List<String> list = map.get("product_name");
            System.out.println(list.get(0));

        }

    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值