zoukankan      html  css  js  c++  java
  • 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官方网站进行下载。
      安装完毕之后配置环境变量

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

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

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

      Tomcat下载

    部署Solr到Tomcat

    说明: 我的解压路径

    1
    2
    #Solr:D:developsolr-7.3.0
    #Tomcat:D:webserverapache-tomcat-9.0.1

    复制Solr文件到Tomcat

    1. 拷贝文件夹
      D:developsolr-7.3.0serversolr-webappwebapp 到
      D:webserverapache-tomcat-9.0.1webapps 下,并且重命名为solr7.3
    2. 复制D:developsolr-7.3.0serverlibext 下的所有Jar包到
      D:webserverapache-tomcat-9.0.1webappssolr7.3WEB-INFlib
    3. 复制D:developsolr-7.3.0dist下的
      solr-dataimporthandler-7.3.0.jar
      solr-dataimporthandler-extras-7.3.0.jar
      到D:webserverapache-tomcat-9.0.1webappssolr7.3WEB-INFlib
    4. 复制D:developsolr-7.3.0serverlib下的metrics-开头的五个Jar
      到D:webserverapache-tomcat-9.0.1webappssolr7.3WEB-INFlib
    5. 复制D:developsolr-7.3.0serverresourceslog4j.properties到
      D:webserverapache-tomcat-9.0.1webappssolr7.3WEB-INFclasses

      配置Solr Home

    6. 新建文件夹D:developsolr-7.3.0-home,复制D:developsolr-7.3.0serversolr下的所有内容到D:developsolr-7.3.0-home。
    7. 打开D:webserverapache-tomcat-9.0.1webappssolr7.3WEB-INFweb.xml
      在47行配置SolrHome,用于指定数据存放位置。
      1
      2
      3
      4
      5
      <env-entry>
      <env-entry-name>solr/home</env-entry-name>
      <env-entry-value>D:developsolr-7.3.0-home</env-entry-value>
      <env-entry-type>java.lang.String</env-entry-type>
      </env-entry>

    关闭安全约束

    注释掉D:webserverapache-tomcat-9.0.1webappssolr7.3WEB-INFweb.xml最下方的安全约束,让项目启动之后可以正常访问。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    <!--
    <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>
    <u 大专栏  Solr7.3.0入门教程,部署Solr到Tomcat,配置Solr中文分词器rl-pattern>/</url-pattern>
    <http-method-omission>TRACE</http-method-omission>
    </web-resource-collection>
    </security-constraint>
    -->

    Tomcat启动访问

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

    Solr7.3首页)

    创建Solr Core

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

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

    我们复制官方给出的默认配置,复制
    D:developsolr-7.3.0-homeconfigsets_defaultconf
    到D:developsolr-7.3.0-homeblog下,回到页面,再次点击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

    在配置文件中添加

    我们打开文件:
    D:developsolr-7.3.0-homeblogconfmanaged-schema
    搜索title关键词,搜索到如下信息:

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

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

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

    添加/更新/查询数据

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

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

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

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

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

    中文分词器的使用

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

    没有分词器

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

    解压将里面的两个jar包ik-analyzer-solr5-5.x.jar以及solr-analyzer-ik-5.1.0.jar解压到
    apache-tomcat-9.0.1webappssolr7.3WEB-INFlib

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

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

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

    使用分词器

    参考资料

    Solr官方文档

  • 相关阅读:
    openerp学习笔记 调用工作流
    openerp学习笔记 自定义小数精度(小数位数)
    openerp学习笔记 跟踪状态,记录日志,发送消息
    openerp学习笔记 计算字段、关联字段(7.0中非计算字段、关联字段只读时无法修改保存的问题暂未解决)
    openerp学习笔记 tree视图增加复选处理按钮
    openerp学习笔记 统计、分析、报表(过滤条件向导、分组报表、图形分析、比率计算、追加视图排序)
    openerp学习笔记 视图样式(表格行颜色、按钮,字段只读、隐藏,按钮状态、类型、图标、权限,group边距,聚合[合计、平均],样式)
    openerp学习笔记 计划动作、计划执行(维护计划)
    银行前置以及银行核心系统
    什么是报文
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12037865.html
Copyright © 2011-2022 走看看