全文检索服务器-solr配置与使用

284 阅读2分钟

「这是我参与11月更文挑战的第8天,活动详情查看:2021最后一次更文挑战

1.Solr服务与tomcat整合

tomcat安装运行环境

  • Jdk:1.8及以上
  • Solr:7.1
  • Web服务器:tomcat 8(改端口8081,如果只有一个tomcat,可以不改,默认是8080;如果有多个tomcat,就需要改端口号,防止冲突;如果有一个tomcat配置了环境变量,其他的也需要配置才能使用,或者都不配置。)

整合

第一步:F:\solr\solr-7.1.0\server\solr-webapp\webapp路径下的内容,放入F:\solr\apache-tomcat-8.0.41\webapps下的solr文件夹里,(solr文件夹需要新建)。

image.png

image.png

第二步:F:\solr\solr-7.1.0\server\lib下的所有jar包,包括ext文件夹下的jar包,全部复制到F:\solr\apache-tomcat-8.0.41\webapps\solr\WEB-INF\lib路径下。

image.png

image.png

第三步: 将F:\solr\solr-7.1.0\server\resources下的log4j.properties文件放入F:\solr\apache-tomcat-8.0.41\webapps\solr\WEB-INF\路径下新建的classes文件夹里。 第四步:创建一个solr_home文件夹,用于配置与solr服务器想要响应的文件。 将F:\solr\solr-7.1.0下的contrib和dist文件夹以及F:\solr\solr-7.1.0\server\solr下的所有内容都复制到新建目录solr_home下。 在solr_home目录下,新建一个demo_core文件夹,用于在Slor页面中添加Core选择类,完成后续的设置搜索方式等功能。

image.png

image.png

注意:修改F:\solr\solr_home\demo_core\conf\solrconfig.xml文件

image.png 注意:修改F:\solr\apache-tomcat-8.0.41\webapps\solr\WEB-INF\中的web.xml文件

image.png

注释掉这部分内容 image.png

启动tomcat,进入Solr页面

访问http://localhost:8081/solr/index.html

image.png

导数据,配置中文分词器

将F:\solr\solr-7.1.0\contrib\analysis-extras\lucene-libs路径下的所有jar包和F:\solr\solr-7.1.0\dist路径下的两个包全部复制到F:\solr\apache-tomcat-8.0.41\webapps\solr\WEB-INF\lib文件夹下。 image.png

image.png

在F:\solr\solr_home\core_demo\conf路径下的managed-schema中加入中分分词器配置

<!-- ChineseAnalyzer -->

    <fieldType name="solr_cnAnalyzer" class="solr.TextField" positionIncrementGap="100">

      <analyzer type="index">

        <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>

      </analyzer>

      <analyzer type="query">

        <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>

      </analyzer>

    </fieldType>

solrconfig.xml里添加requestHandler类型的配置,data-config.xml配置的是数据库连接相关信息、 SQL以及查询结果映射对应域中

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">

    <lst name="defaults">

    <str name="config">data-config.xml</str>

    </lst>

</requestHandler>

所以需要在统计目录下创建data-config.xml文件,映射文件对应属性就不一一介绍了

<?xml version="1.0" encoding="UTF-8" ?>

<dataConfig>

  <dataSource type="JdbcDataSource"

              driver="com.mysql.jdbc.Driver"

              url="jdbc:mysql://localhost:3306/solr"

              user="root"

              password="root"/>

  <document>
<!--entity里的name属性和自己数据库里的表名对应-->
<entity name="products"  query="select pid,pname,catalog_name,price,description,picture from products ">

 <field column="pid" name="id"/>  

 <field column="pname" name="prod_pname"/>  

 <field column="catalog_name" name="prod_catalog_name"/>  

 <field column="price" name="prod_price"/>  

 <field column="description" name="prod_description"/>  

 <field column="picture" name="prod_picture"/>  

</entity>

  </document>

</dataConfig>

image.png

启动服务,添加数据,查询演示。

image.png

查询语法: 1. q查询关键字,查询所有使用*:*。 多个条件可以:之间用 AND 或 OR 关联

2. fq (filter query)过滤查询,作用:在q查询符合结果中同时是fq查询符合的, 注:也可以在“q”查询条件中使用product_price:[1 TO 20] image.png