未读代码 未读代码
首页
  • Java 18 新功能介绍
  • Java 17 新功能介绍
  • Java 16 新功能介绍
  • Java 15 新功能介绍
  • Java 14 新功能介绍
  • Java 8 新特性

    • Java 8 Lambda 表达式
    • Java 8 Stream 流式操作
    • Java 8 时间处理介绍
    • Java 8 Optional 介绍
  • Java 开发工具
Java 源码分析
Spring Boot 系列
  • Arthas 问题定位
  • JMH 基准测试
GitHub (opens new window)
首页
  • Java 18 新功能介绍
  • Java 17 新功能介绍
  • Java 16 新功能介绍
  • Java 15 新功能介绍
  • Java 14 新功能介绍
  • Java 8 新特性

    • Java 8 Lambda 表达式
    • Java 8 Stream 流式操作
    • Java 8 时间处理介绍
    • Java 8 Optional 介绍
  • Java 开发工具
Java 源码分析
Spring Boot 系列
  • Arthas 问题定位
  • JMH 基准测试
GitHub (opens new window)
  • elasticsearch

    • 全文搜索ElasticSearch(一)数据的增删改查
    • 全文搜索ElasticSearch(三)Head插件的安装与使用
    • 全文搜索ElasticSearch(二)深入搜索
    • Solr7.3.0入门教程,部署Solr到Tomcat,配置Solr中文分词器
    • elasticsearch
    • elasticsearch
    程序猿阿朗
    2018-04-13

    Solr7.3.0入门教程,部署Solr到Tomcat,配置Solr中文分词器

    # solr 基本介绍

    Apache Solr (读音: SOLer) 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。Apache Solr 中存储的资源是以 Document 为对象进行存储的。每个文档由一系列的 Field 构成,每个 Field 表示资源的一个属性。Solr 中的每个 Document 需要有能唯一标识其自身的属性,默认情况下这个属性的名字是 id,在 Schema 配置文件中使用:id进行描述。 Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器。文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提 供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。

    # solr 名称来源

    Search On Lucene Replication

    # solr 历史

    2004年 CNET 开发 Solar,为 CNET 提供站内搜索服务 2006年1月捐献给 Apache ,成为 Apache 的孵化项目 一年后 Solr 孵化成熟,发布了1.2版,并成为 Lucene 的子项目 2010年6月,solr 发布了的1.4.1版,这是1.4的 bugfix 版本,1.4.1的solr使用的lucene是2.9版本的 solr 从1.4.x版本以后,为了保持和lucene同步的版本,solr直接进入3.0版本。

    # 环境准备

    1. 下载JDK8 安装且配置环境变量 可以直接在JDK官方网站 (opens new window)进行下载。 安装完毕之后配置环境变量 (opens new window)。

    2. 下载Solr7.3.0并解压 可以直接在Solr官方网站 (opens new window)进行下载。

    Solr下载 ​ http://mirrors.hust.edu.cn/apache/lucene/solr/

    1. 下载Tomcat 8或者 Tomcat 9 并解压 可以直接在Tomcat官方网站 (opens new window)进行下载安装。 https://tomcat.apache.org/download-90.cgi

      Tomcat下载

    # 部署Solr到Tomcat

    说明: 我的解压路径

    #Solr:D:\develop\solr-7.3.0
    #Tomcat:D:\webserver\apache-tomcat-9.0.1
    
    1
    2

    # 复制Solr文件到Tomcat

    1. 拷贝文件夹 D:\develop\solr-7.3.0\server\solr-webapp\webapp 到 D:\webserver\apache-tomcat-9.0.1\webapps\ 下,并且重命名为solr7.3
    2. 复制D:\develop\solr-7.3.0\server\lib\ext 下的所有Jar包到 D:\webserver\apache-tomcat-9.0.1\webapps\solr7.3\WEB-INF\lib
    3. 复制D:\develop\solr-7.3.0\dist下的 solr-dataimporthandler-7.3.0.jar solr-dataimporthandler-extras-7.3.0.jar
      到D:\webserver\apache-tomcat-9.0.1\webapps\solr7.3\WEB-INF\lib
    4. 复制D:\develop\solr-7.3.0\server\lib下的metrics-开头的五个Jar 到D:\webserver\apache-tomcat-9.0.1\webapps\solr7.3\WEB-INF\lib
    5. 复制D:\develop\solr-7.3.0\server\resources\log4j.properties到 D:\webserver\apache-tomcat-9.0.1\webapps\solr7.3\WEB-INF\classes

    # 配置Solr Home

    1. 新建文件夹D:\develop\solr-7.3.0-home,复制D:\develop\solr-7.3.0\server\solr下的所有内容到D:\develop\solr-7.3.0-home。
    2. 打开D:\webserver\apache-tomcat-9.0.1\webapps\solr7.3\WEB-INF\web.xml 在47行配置SolrHome,用于指定数据存放位置。
    <env-entry>
      <env-entry-name>solr/home</env-entry-name>
      <env-entry-value>D:\develop\solr-7.3.0-home</env-entry-value>
      <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>
    
    1
    2
    3
    4
    5

    # 关闭安全约束

    注释掉D:\webserver\apache-tomcat-9.0.1\webapps\solr7.3\WEB-INF\web.xml最下方的安全约束,让项目启动之后可以正常访问。

      <!-- Get rid of error message -->
      <!--
      <security-constraint>
        <web-resource-collection>
          <web-resource-name>Disable TRACE</web-resource-name>
          <url-pattern>/</url-pattern>
          <http-method>TRACE</http-method>
        </web-resource-collection>
        <auth-constraint/>
      </security-constraint>
      <security-constraint>
        <web-resource-collection>
          <web-resource-name>Enable everything but TRACE</web-resource-name>
          <url-pattern>/</url-pattern>
          <http-method-omission>TRACE</http-method-omission>
        </web-resource-collection>
      </security-constraint>
      -->
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    # Tomcat启动访问

    至此,Solr配置以及完成,启动Tomcat访问 http://localhost:8080/solr7.3/index.html

    Solr7.3首页)

    # 创建Solr Core

    点击网页左侧菜单Core Admin 输入 ​ name:blog ​ instanceDir:blog 点击Add Core,网页上方提示在D:\develop\solr-7.3.0-home\blog下无法找到solrconfig.xml:

    Error CREATEing SolrCore 'blog': Unable to create core [blog] Caused by: Can't find resource 'solrconfig.xml' in classpath or 'D:\develop\solr-7.3.0-home\blog'
    
    1

    我们复制官方给出的默认配置,复制 D:\develop\solr-7.3.0-home\configsets_default\conf 到D:\develop\solr-7.3.0-home\blog下,回到页面,再次点击Add Core,等待页面添加成功自动刷新。 此时,在SolrHome下的blog文件夹下生成了相关文件:

    Solr core

    # 添加 Core 字段

    # 在页面上添加

    打开http://localhost:8080/solr7.3/index.html选择左侧菜单Core Selector 选择刚才添加的blog,接着选择下面的Schema。可以在出现的页面上填写字段信息name:title,field type:string,然后点击Add Field完成添加。 Solr中的Field、CopyField、DynamicField与其他Field (opens new window)

    # 在配置文件中添加

    我们打开文件: D:\develop\solr-7.3.0-home\blog\conf\managed-schema 搜索title关键词,搜索到如下信息:

    <field name="title" type="string" indexed="true" stored="true"/>
    
    1

    可见,我们刚才在页面添加的字段信息最终会生成此条配置,因此,我们也可以拷贝这个配置更改name值为content就可以完成content字段的添加。

    配置完成之后点击页面Core Admin然后点击Reload刷新信息,我们就可以在Schema中查看到content字段。

    # 添加/更新/查询数据

    在页面选择blog Core,选择Documents,在Document(s)中输入下面内容进行数据然后点击Submit Document添加数据,如果ID已经存在,则为更新。如果JSON中没有写ID字段,会随机生成ID。

    {
      "id": "10000",
      "title": "Sorl入门教程",
      "content": "sorl下载,solr配置,solr启动"
    }
    
    1
    2
    3
    4
    5

    提交之后可以看到成功添加信息的反馈。

    Status: success
    Response:
    {
      "responseHeader": {
        "status": 0,
        "QTime": 4
      }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8

    数据已经成功添加,如果需要查询数据可以点击左侧Query,点击Execute Query查询出刚才添加的数据。

    # 中文分词器的使用

    在已经运行的页面上,选择blog Core,然后选择Analysis,输入中国人民,字段类型选择_text_,点击Analyse Values可以看到没有中文分词器的结果:

    没有分词器

    下面使用中文分词器,下载ikanalyzer-solr6.5 解压将IKAnalyzer.cfg.xml以及stopword.dic解压到 \apache-tomcat-9.0.1\webapps\solr7.3\WEB-INF\classes

    解压将里面的两个jar包ik-analyzer-solr5-5.x.jar以及solr-analyzer-ik-5.1.0.jar解压到 \apache-tomcat-9.0.1\webapps\solr7.3\WEB-INF\lib

    打开刚才创建的blog core目录\solr-7.3.0-home\blog\conf,编辑managed-schema文件添加配置:

      <fieldType name="text_ik" class="solr.TextField">
        <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
      </fieldType>
    
    1
    2
    3

    在页面选择Core Admin -> blog -> Reload 刷新配置,然后选择blog Core,然后选择Analysis,输入中国人民,字段类型选择text_ik,点击Analyse Values可以看到没有中文分词器的结果:

    使用分词器

    # 参考资料

    Solr官方文档 (opens new window)

    订阅

    文章持续更新,订阅可以关注「 程序猿阿朗 」公众号或者未读代码博客。

    文章作者: 程序猿阿朗
    文章链接:https://www.wdbyte.com/2018/04/lucene/solr-install/
    版权声明:本网站当前文章采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 未读代码!
    #Solr#中文分词
    上次更新: 2022/12/05, 08:18:32
    全文搜索ElasticSearch(二)深入搜索

    ← 全文搜索ElasticSearch(二)深入搜索

    最近更新
    01
    如何搭建一个自己的音乐服务器
    12-04
    02
    JUnit 5 单元测试教程
    11-17
    03
    使用 StringUtils.split 的坑
    11-02
    更多文章>

    提示:评论前请刷新页面,否则评论的可能不是当前文章。

    Theme by Vdoing | Copyright © 2018-2022 程序猿阿朗 | MIT License | 皖ICP备20000567号-1
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式