java,solrj连接solr

<dependency>
            <groupId>org.apache.solr</groupId>
            <artifactId>solr-solrj</artifactId>
            <version>4.10.4</version>
        </dependency>

        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>

        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-nop</artifactId>
             <version>1.7.2</version>
        </dependency>

添加数据:


 @Test
    public void addDocument() throws Exception {
        //创建一个SolrServer对象,创建一个连接,参数solr服务的url
        SolrServer solrServer = new HttpSolrServer("http://127.0.0.1:8080/solr/collection1");
        //创建一个文档对象SolrInputDoCument
        SolrInputDocument document = new SolrInputDocument();
        //向文档对象中添加域,文档中必须包含一个id域,所有的域的名称必须在schema.xml中定义
        document.addField("id", "doc01");
        document.addField("item_title", "测试商品01");
        document.addField("item_price", 1000);
        //把文档写入索引库
        solrServer.add(document);
        //提交
        solrServer.commit();
    }

删除数据:


@Test
    public void daleteDocument() throws Exception {
        //创建一个SolrServer对象,创建一个连接,参数solr服务的url
        SolrServer solrServer = new HttpSolrServer("http://127.0.0.1:8080/solr/collection1");
        //按照文档id删除
        //solrServer.deleteById("doc01");
        //或者根据查询删除
        solrServer.deleteByQuery("id:doc01");
        //提交
        solrServer.commit();
    }

查询数据:

@Test
    public void selectDocument() throws Exception {
        //创建一个SolrServer对象,创建一个连接,参数solr服务的url
        SolrServer solrServer = new HttpSolrServer("http://127.0.0.1:8080/solr/collection1");
        //创建查询对象
        SolrQuery solrQuery=new SolrQuery();
        //设置查询条件
        solrQuery.set("q","item_title:3");
        //查询
        QueryResponse query = solrServer.query(solrQuery);
        //获得查询结果
        SolrDocumentList results = query.getResults();
        //获得查询记录数
        long numFound = results.getNumFound();
        System.out.println(numFound);
        for (SolrDocument sd : results) {
            String id=(String) sd.getFieldValue("id");
            String item_title=(String) sd.getFieldValue("item_title");
            String item_sell_point=(String) sd.getFieldValue("item_sell_point");
            long item_price=(Long) sd.getFieldValue("item_price");
            String item_desc=(String) sd.getFieldValue("item_desc");
            String item_image=(String) sd.getFieldValue("item_image");
            String item_category_name=(String) sd.getFieldValue("item_category_name");
            System.out.println("========================================");
            System.out.println("id:"+id);
            System.out.println("item_title:"+item_title);
            System.out.println("item_sell_point:"+item_sell_point);
            System.out.println("item_price:"+item_price);
            System.out.println("item_desc:"+item_desc);
            System.out.println("item_image:"+item_image);
            System.out.println("item_category_name:"+item_category_name);
        }
    }

设置条件:

//设置查询条件
query.set("q","item_title:3 AND item_desc:嘻嘻  OR item_sell_point:哈哈" );

设置分页:

//设置分页条件
		query.setStart(1);
		query.setRows(2);

设置高亮:

//开启高亮
		query.setHighlight(true);
		query.addHighlightField("item_title");
		query.setHighlightSimplePre("<em>");
		query.setHighlightSimplePost("</em>");

设置搜索域:

//设置默认搜索域
		query.set("df", "item_title");

猜你喜欢

转载自blog.csdn.net/qq_40550973/article/details/80914582