Solr安装,配置_solr下载-程序员宅基地

技术标签: solr  lucene  搜索引擎  

Solr 下载,安装,启动

Solr下载

在这里插入图片描述

  • 注意: 我们要选择 Binary releases (二进制版本)

  • 安装solr9.x版本,踩坑:

    安装后启动时报错,如图:

    在这里插入图片描述

    • 原因: 本地安装的jdk版本为1.8,而solr9.x最低要求jdk版本为java 11

    在这里插入图片描述

    • 解决方式:
      • 升级JDK版本,或者重新装低版本的Solr(本文选择重新安装8.9.0版本)

Solr安装

下载下来的是个压缩包,解压即可;

  • 例如将下载好的.tgz文件解压到自定义目录

    例如:

    D:\software\devTool\Solr\solr-8.9.0

Solr安装目录

  • bin\ 该目录中包含几个重要的脚本:

    • solr\solr.cmd 这是 Solr 的控制脚本,用于启动和停止 Solr 服务。在 SlorCloud 模式下运行时,可以创建集合或内核,配置身份验证以及使用配置文件。
    • post 用于发布内容到 solr 的一个简单的命令行工具。
    • solr.in.sh\solr.in.cmd 此处配置 Java,Jetty 和 Solr 的系统级属性,即全局属性。
    • install_solr_services.sh 在 Linux、Uinx 系统上将 Solr 安装为服务。
  • contrib\ 该目录包含 Solr 专用功能的附加插件。

  • dist\ 该目录包含主要的 Solr jar 文件。

  • docs\ Solr 帮助文档。

  • example\ 包含几种演示各种 Solr 功能的示例。

  • licenses\ 包含 Solr 使用的第三方库的所有许可证。

  • server\ 该目录是 Solr 应用程序的核心所在:

    • server\solr-webapp Solr 的 Admin UI 所在位置

    • server\lib Jetty 库

    • server\logs 日志文件

    • server\resources 日志配置

    • server\solr\configsets 示例配置

Solr启动

  • 若配置了环境变量则可以直接在cmd中输入solr命令;

    • 配置环境变量:在path中添加D:\software\devTool\Solr\solr-8.9.0\bin
  • 命令方式启动

    打开cmd,进入到solr的bin目录下输入

  • 单机模式启动

  • solr start

显示:

Waiting up to 30 to see Solr running on port 8983
Started Solr server on port 8983. Happy searching!

则表示启动成功。

  • Cloud方式启动

  • solr start -e cloud

Solr其他相关命令:

  • solr start -p port 指定端口启动
  • solr stop -p port 指定端口关闭
  • solr status 查看solr运行状态
  • solr stop -all 停止Solr服务器。
  • solr restart -p port 重启指定端口的Solr服务器
  • solr create_core 用于为Solr服务器创建Core。
  • solr create_collection 用于为Solr服务器创建Collection。
  • solr create 根据Solr的运行状态选择创建Core或Collection。如果Solr以单机模式运行,则该命令是创建core;若Solr以云模式运行,则该命令是创建Collection。
  • solr delete 删除Core或Collection。
  • solr version 显示Solr的版本。

Solr管理页面

在这里插入图片描述

  • Dashboard(仪表盘):显示Solr运行状态一览。
  • Logging(日志):显示Solr运行日志。
  • Core Admin(Core管理):提供了图形用户界面来管理Core。以单机模式启动是显示Core Admin,以集群模式启动时则显示cloud
  • Java Properties(Java属性):显示当前运行的JVM属性一览。
  • Thread Dump(线程Dump):显示Solr内部的线程Dump。

Solr权限认证

  • 默认启动的 Solr 不需要用户名,密码,任何人都可直接访问 。 为了支持权限控制,Solr提供了如下几种身份验证插件:

  • Kerberos Authentication Plugin:Kerberos身份验证插件。

  • Basic Authentication Plugin:基本身份验证插件。

  • Hadoop Authentication Plugin:Hadoop身份验证插件。

  • JWT Authentication Plugin:JWT身份验证插件。

  • 使用示例: 使用Basic Authentication Plugin(基本身份验证插件)为Solr配置用户名,密码。

    • 在Solr安装路径下的server\solr子目录下添加一个security.json文件,内容如下:
    {
           
    "authentication":{
            
    "blockUnknown": true, 
    "class":"solr.BasicAuthPlugin",
    "credentials":{
           "root":"pPKs8BkTXNNLlzipK0LAm6gh64kBEfIuKx1HYU4rHnc= hOJ+WQ/ubP/DPfTnGbjF+ANOZHmnaQ8jAnJh4xxdYu8="}, 
    "realm":"Solr users", 
    "forwardCredentials": false 
    },
    "authorization":{
           
    "class":"solr.RuleBasedAuthorizationPlugin",
    "permissions":[{
           "name":"security-edit",
     "role":"admin"}], 
    "user-role":{
           "root":"admin"} 
    }
    }
    
    • blockUnknow属性指定为true,表明阻止所有未知用户访问,false 则表示关闭Solr的用户认证功能 ;

    • class属性指定使用基本身份验证插件;

    • credentials属性配 置了一个超级用户,其用户名是root,密码是32147。

    • permissions属性定义了一个admin角色,该角色允许执行secur ity-edit操作;

    • user-role属性定义了root用户的角色是admin,这样root用 户就拥有执行security-edit操作的权限。

Solr停止

  • 打开cmd,进入到solr的bin目录下输入

solr stop -all

Solr创建/删除 Core(内核/核心)

​ 在单机模式下,一个 Core 等于一个 Collection。Solr 的 Core 有点类似于RDBMS(关系型数据库管理系统)的表,Solr Core 同样具有支持唯一标识的主键,也需要定义多个 Field。与RDBMS不同的是,Core 中存放的是各种文档,且这些文档不需要具有相同的 Field。因此,在正式使用 Solr 之前,必须先创建 Core。

  • Solr 中一个核心(core)相当于一个搜索引擎,Solr 想要创建索引需要创建一个Core,可理解为数据的表。
使用命令创建/删除Core
  • 使用solr命令直接创建

    solr create -c Core 名称 [-d 配置文件目录] [-p 端口]
    例如:solr create -c new_code -d sample_techproducts_configs -p 8983

  • 使用solr命令的子命令 create_core 创建 Core。

    solr create_core -c Core 名称 [-d 配置文件目录] [-p 端口]

    • -p:用于指定Solr实例的端口,如果不指定该选项,该命令将自动使用它搜索得到的第一个Solr实例的端口。

    • -d:用于指定这些配置模板所在的路径,如果不指定-d 选项,Solr 将默认为该选项使用 _default 值,也就是使用server\solr\configsets路径下_default目录下的配置文件作为配置模板。

    • 注意:

    不推荐将 _default 目录下的配置文件作为产品级的Core来使用。 在server\solr\configsets路径下还提供了一个sample_techproducts_configs目录,该目录下的配置文件可作为产品级的Core来使用,因此推荐使用该目录作为Core配置文件的目录。

    例如:·solr create_core -c test -d sample_techproducts_configs -p 8983

  • 创建完成后, 默认在 server\solr 下会生成内核目录,内核目录下包含两个目录一个文件:

    • conf\: 存放内核的配置文件。
    • data\: 存放索引数据,相当于 lucene 中定义 IndexWriter 对象的第一个 Directory 参数。
    • core.preperties: 内核的一些参数定义。
  • 使用solr命令删除Core

solr delete [-c Core 名称] [-p 端口]

例如:solr delete -c new_code -p 8983

管理页面创建Core
  • 只需要在nameinstanceDir文本框中分别输入Core名称和保存目录。 如图:

在这里插入图片描述

  • 注意: 在通过图形用户界面创建Core时,Solr并不会为Core创建目录及配置文件,因此在通过图所示界面中的Add Core按钮创建Core之前,先要完成如下两步:
  • server\solr路径下创建一个new_core目录,将instanceDir指定为new_core
    • server\solr\configsets\sample_techproducts_configs目录下的conf整个目录复制到第1步创建的new_core目录中。如果之前预定义好了配置文件,也可使用自己的配置文件。
管理页面删除Core
  • 只要在界面中选中指定的 Core,然后单击Unload按钮即可删除该Core。

在这里插入图片描述

  • 注意: 使用solr delete命令删除 Core 和通过管理页面删除 Core 是有区别的:
  • 使用solr delete命令删除 Core 时,会把整个 Core 对应的目录都彻底删除;
    • 但是通过管理页面删除 Core 时,只是将该 Core 从 Solr 系统中删除,并未删除该Core 对应的目录,因此以后还可重载添加回来。

Solr 配置 IK 分词器

<dependency>
    <groupId>com.github.magese</groupId>
    <artifactId>ik-analyzer</artifactId>
    <version>8.9.0</version>
</dependency>

单机版Solr配置IK 分词器

  • 将 jar 包放入 server\solr-webapp\webapp\WEB-INF\lib 目录下;

  • 将 jar 包中 resources 目录下的 5 个配置文件放入 server\resources 目录下;可以在 github(https://github.com/magese/ik-analyzer-solr) 上下载这些配置文件:

    • IKAnalyzer.cfg.xml (IK默认的配置文件,用于配置自带的扩展词典及停用词典)
    • ext.dic (默认的扩展词典)
    • stopword.dic (默认的停词词典)
    • ik.conf (动态词典配置文件)
    • dynamicdic.txt (默认的动态词典)
  • IKAnalyzer.cfg.xml配置文件说明:

名称 类型 描述 默认
use_main_dict boolean 是否使用默认主词典 true
ext_dict String 扩展词典文件名称,多个用分号隔开 ext.dic;
ext_stopwords String 停用词典文件名称,多个用分号隔开 stopword.dic;
  • ik.conf文件说明:
files=dynamicdic.txt
lastupdate=0
  • files为动态词典列表,可以设置多个词典表,用逗号进行分隔,默认动态词典表为dynamicdic.txt
  • lastupdate默认值为0,每次对动态词典表修改后请+1,不然不会将词典表中新的词语添加到内存中。
  • dynamicdic.txt文件说明:

    dynamicdic.txt 为动态词典 在此文件配置的词语不需重启服务即可加载进内存中。 以#开头的词语视为注释,将不会加载到内存中。

  • 修改Solr的managed-schema,添加ik分词器,示例如下;

    <!-- ik分词器 -->
    <fieldType name="text_ik" class="solr.TextField">
      <analyzer type="index">
          <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
          <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
          <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
          <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>
    

SolrCloud 配置IK 分词器

​ 因为Solr-Cloud中的配置文件是交由zookeeper进行管理的, 所以为了方便更新动态词典, 所以也要将动态词典文件上传至zookeeper中,目录与solr的配置文件目录一致。

注意:因为zookeeper中的配置文件大小不能超过1m,当词典列表过多时,需将词典文件切分成多个。

  • 1、将jar包放入每台服务器的Solr服务的JettyTomcatwebapp\WEB-INF\lib\目录下;

  • 2、将 jar 包中 resources目录下的IKAnalyzer.cfg.xmlext.dicstopword.dic放入solr服务的JettyTomcatwebapp\WEB-INF\classes\目录下;

    • IKAnalyzer.cfg.xml (IK默认的配置文件,用于配置自带的扩展词典及停用词典)
    • ext.dic (默认的扩展词典)
    • stopword.dic (默认的停词词典)
  • IKAnalyzer.cfg.xml配置文件说明:
名称 类型 描述 默认
use_main_dict boolean 是否使用默认主词典 true
ext_dict String 扩展词典文件名称,多个用分号隔开 ext.dic;
ext_stopwords String 停用词典文件名称,多个用分号隔开 stopword.dic;
  • 注意:与单机版不同,ik.confdynamicdic.txt请不要放在classes目录下!
  • 3、将resources目录下的ik.confdynamicdic.txt放入solr配置文件夹中,与solr的managed-schema文件同目录中;

    • ik.conf (动态词典配置) 文件说明:

      files=dynamicdic.txt
      lastupdate=0
      
      • files (动态词典列表,可以设置多个词典表,用逗号进行分隔,默认动态词典表为dynamicdic.txt)
      • lastupdate (默认值为0,每次对动态词典表修改后请修改该值,必须大于上次的值,不然不会将词典表中新的词语添加到内存中。)
    • dynamicdic.txt(动态词典)文件说明:

      • dynamicdic.txt是默认的动态词典,在此文件配置的词语不需重启服务即可加载进内存中。以#开头的词语视为注释,将不会加载到内存中。
  • 4、修改Solr的managed-schema,添加ik分词器,示例如下;

    <!-- ik分词器 -->
    <fieldType name="text_ik" class="solr.TextField">
      <analyzer type="index">
          <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
          <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
          <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
          <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>
    
  • 5、将配置文件上传至zookeeper中,首次使用请重启服务或 reload Collection。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44603464/article/details/131963808

智能推荐

python opencv resize函数_python opencv 等比例调整(缩放)图片分辨率大小代码 cv2.resize()...-程序员宅基地

文章浏览阅读1.3k次。# -*- coding: utf-8 -*-"""@File : 200113_等比例调整图像分辨率大小.py@Time : 2020/1/13 13:38@Author : Dontla@Email : [email protected]@Software: PyCharm"""import cv2def img_resize(image):height, width = image...._opencv小图等比例缩放

【OFDM、OOK、PPM、QAM的BER仿真】绘制不同调制方案的误码率曲线研究(Matlab代码实现)-程序员宅基地

文章浏览阅读42次。对于这些调制技术的误码率(BER)研究是非常重要的,因为它们可以帮助我们了解在不同信道条件下系统的性能表现。通过以上步骤,您可以进行OFDM、OOK、PPM和QAM的误码率仿真研究,并绘制它们的误码率曲线,以便更好地了解它们在不同信道条件下的性能特点。针对这些调制技术的BER研究是非常重要的,可以帮助我们更好地了解这些技术在不同信道条件下的性能表现,从而指导系统设计和优化。6. 分析结果:根据误码率曲线的比较,分析每种调制方案在不同信噪比条件下的性能,包括其容忍的信道条件和适用的应用场景。_ber仿真

【已解决】Vue的Element框架,日期组件(el-date-picker)的@change事件,不会触发。_el-date-picker @change不触发-程序员宅基地

文章浏览阅读2.5w次,点赞3次,收藏3次。1、场景照抄官方的实例,绑定了 myData.Age 这个值。实际选择某个日期后,从 vuetool(开发工具)看,值已经更新了,但视图未更新。2、尝试绑定另一个值: myData,可以正常的触发 @change 方法。可能是:值绑定到子对象时,组件没有侦测到。3、解决使用 @blur 代替 @change 方法。再判断下 “值有没有更新” 即可。如有更好的方法,欢迎评论!..._el-date-picker @change不触发

PCL学习:滤波—Projectlnliers投影滤波_projectinliers-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏8次。Projectlnliersclass pcl: : Projectlnliers< PointT >类 Projectlnliers 使用一个模型和一组的内点的索引,将内点投影到模型形成新的一个独立点云。关键成员函数 void setModelType(int model) 通过用户给定的参数设置使用的模型类型 ,参数 Model 为模型类型(见 mo..._projectinliers

未处理System.BadImageFormatException”类型的未经处理的异常在 xxxxxxx.exe 中发生_“system.badimageformatexception”类型的未经处理的异常在 未知模块。 -程序员宅基地

文章浏览阅读2.4k次。“System.BadImageFormatException”类型的未经处理的异常在 xxxx.exe 中发生其他信息: 未能加载文件或程序集“xxxxxxx, Version=xxxxxx,xxxxxxx”或它的某一个依赖项。试图加载格式不正确的程序。此原因是由于 ” 目标程序的目标平台与 依赖项的目标编译平台不一致导致,把所有的项目都修改到同一目标平台下(X86、X64或AnyCPU)进行编译,一般即可解决问题“。若果以上方式不能解决,可采用如下方式:右键选择配置管理器,在这里修改平台。_“system.badimageformatexception”类型的未经处理的异常在 未知模块。 中发生

PC移植安卓---2018/04/26_电脑软件移植安卓-程序员宅基地

文章浏览阅读2.4k次。记录一下碰到的问题:1.Assetbundle加载问题: 原PC打包后的AssetBundle导入安卓工程后,加载会出问题。同时工程打包APK时,StreamingAssets中不能有中文。解决方案: (1).加入PinYinConvert类,用于将中文转换为拼音(多音字可能会出错,例如空调转换为KongDiao||阿拉伯数字不支持,如Ⅰ、Ⅱ、Ⅲ、Ⅳ(IIII)、Ⅴ、Ⅵ、Ⅶ、Ⅷ、Ⅸ、Ⅹ..._电脑软件移植安卓

随便推点

聊聊线程之run方法_start 是同步还是异步-程序员宅基地

文章浏览阅读2.4k次。话不多说参考书籍 汪文君补充知识:start是异步,run是同步,start的执行会经过JNI方法然后被任务执行调度器告知给系统内核分配时间片进行创建线程并执行,而直接调用run不经过本地方法就是普通对象执行实例方法。什么是线程?1.现在几乎百分之百的操作系统都支持多任务的执行,对计算机来说每一个人物就是一个进程(Process),在每一个进程内部至少要有一个线程实在运行中,有时线..._start 是同步还是异步

制作非缘勿扰页面特效----JQuery_单击标题“非缘勿扰”,<dd>元素中有id属性的<span>的文本(主演、导演、标签、剧情-程序员宅基地

文章浏览阅读5.3k次,点赞9次,收藏34次。我主要用了层次选择器和属性选择器可以随意选择,方便简单为主大体CSS格式 大家自行构造网页主体<body> <div class='main' > <div class='left'> <img src="images/pic.gif" /> <br/><br/> <img src="images/col.gif" alt="收藏本片"/&_单击标题“非缘勿扰”,元素中有id属性的的文本(主演、导演、标签、剧情

有了这6款浏览器插件,浏览器居然“活了”?!媳妇儿直呼“大开眼界”_浏览器插件助手-程序员宅基地

文章浏览阅读901次,点赞20次,收藏23次。浏览器是每台电脑的必装软件,去浏览器搜索资源和信息已经成为我们的日常,我媳妇儿原本也以为浏览器就是上网冲浪而已,哪有那么强大,但经过我的演示之后她惊呆了,直接给我竖起大拇指道:“原来浏览器还能这么用?大开眼界!今天来给大家介绍几款实用的浏览器插件,学会之后让你的浏览器“活过来”!_浏览器插件助手

NumPy科学数学库_数学中常用的环境有numpy-程序员宅基地

文章浏览阅读101次。NumPy是Python中最常用的科学数学计算库之一,它提供了高效的多维数组对象以及对这些数组进行操作的函数NumPy的核心是ndarray(N-dimensional array)对象,它是一个用于存储同类型数据的多维数组Numpy通常与SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用,用于替代MatLabSciPy是一个开源的Python算法库和数学工具包;Matplotlib是Python语言及其Numpy的可视化操作界面'''_数学中常用的环境有numpy

dind(docker in docker)学习-程序员宅基地

文章浏览阅读1.1w次。docker in docker说白了,就是在docker容器内启动一个docker daemon,对外提供服务。优点在于:镜像和容器都在一个隔离的环境,保持操作者的干净环境。想到了再补充 :)一:低版本启动及访问启动1.12.6-dinddocker run --privileged -d --name mydocker docker:1.12.6-dind在其他容器访问d..._dind

推荐文章

热门文章

相关标签