solr安装配置

来源:互联网 发布:什么是淘宝的企业店铺 编辑:程序博客网 时间:2024/05/26 07:29

1.解压solr.war包到tomcat的webapp目录下

2.拷贝solr依赖jar到指定目录

3.添加日志配置文件到class目录

4.在web.xml文件中指定solrhome

5.solrcore安装配置


一个solrhome目录里面包含多个solrcore目录,一个solrcore目录里面了一个solr实例运行时所需要的配置文件和数据文件。

6.配置solrcore运行信息的配置文件

指定目录下添加依赖jar包

7.solr使用




8.配置中文分词器扩展词汇、添加中文分词jar

9.solrj 操作

Field --> Document --> server 添加索引

简单查询

复杂查询


    @Test


    publicvoidsearch02()throws Exception {


        //创建HttpSolrServer


        HttpSolrServer server = new HttpSolrServer("http://localhost:8080/solr");


        //创建SolrQuery对象


        SolrQuery query = new SolrQuery();


 


        //输入查询条件


        query.setQuery("product_name:小黄人");


        // query.set("q","product_name:小黄人");


 


        //设置过滤条件


        //如果设置多个过滤条件的话,需要使用query.addFilterQuery(fq)


        query.setFilterQueries("product_price:[1 TO 10]");


 


        //设置排序


        query.setSort("product_price", ORDER.asc);


        //设置分页信息(使用默认的)


        query.setStart(0);


        query.setRows(10);


 


        //设置显示的Field的域集合


        query.setFields("id,product_name,product_catalog,product_price,product_picture");


 


        //设置默认域


        query.set("df","product_keywords");


 


        //设置高亮信息


        query.setHighlight(true);


        query.addHighlightField("product_name");


        query.setHighlightSimplePre("<em>");


        query.setHighlightSimplePost("</em>");


 


        //执行查询并返回结果


        QueryResponse response = server.query(query);


        //获取匹配的所有结果


        SolrDocumentList list = response.getResults();


        //匹配结果总数


        long count = list.getNumFound();


        System.out.println("匹配结果总数:" + count);


 


        //获取高亮显示信息


        Map<String, Map<String, List<String>>> highlighting= response


                  .getHighlighting();


        for (SolrDocument doc : list) {


             System.out.println(doc.get("id"));


 


             List<String> list2 = highlighting.get(doc.get("id")).get(


                      "product_name");


             if (list2 !=null)


                  System.out.println("高亮显示的商品名称:" + list2.get(0));


             else {


                  System.out.println(doc.get("product_name"));


             }


 


             System.out.println(doc.get("product_catalog"));


             System.out.println(doc.get("product_price"));


             System.out.println(doc.get("product_picture"));


             System.out.println("=====================");


        }