solr7.4安装与部署(一)
发布日期:2021-11-15 14:57:39 浏览次数:32 分类:技术文章

本文共 3550 字,大约阅读时间需要 11 分钟。

下载与安装

  1. 下载:

  2. 下载完成后会得到一个压缩包,解压后会获得一个solr_7.4.0文件夹,此文件夹目录结构如下图

    在这里插入图片描述

单机运行

  1. 在bin目录下执行bin/solr start 此命令会启动solr应用服务器默认端口为8983,如果想指定端口号启动可以加参数–p例 如:solr start –p 8888.

    在这里插入图片描述

  2. 访问:

    在这里插入图片描述

  3. 常用命令

  • solr start –p 端口号 #单机版启动solr服务
  • solr restart –p 端口号 #重启solr服务
  • solr stop –p 端口号 #关闭solr服务
  • solr stop –all #关闭所有solr服务
    此外有关于solr集群版启动方式和其他更多的命令可以参看官方文档

创建core

core简介:简单说core就是solr的一个实例,一个solr服务下可以有多个core,每个core下都有自己的索引库和与之相应的配置文件,所以在操作solr创建索引之前要创建一个core,因为索引都存在core下面。

  1. 直接在/solr-7.4.0/server/solr下创建新文件夹,自定义文件夹名称作为新的an-core。将/server/solr/configsets/_default目录下的conf文件夹,然后拷贝一份至an-core文件夹目录。
  2. 打开Solr面板,添加新创建的an-core的Solr Core。
    在这里插入图片描述
    在这里插入图片描述

Solr面板

基础面板
  • Dashboard: 仪表盘,显示了该Solr实例开始启动运行的时间、版本、系统资源、jvm等信息。
  • Logging: Solr运行日志信息。
  • Cloud:Cloud即SolrCloud,即Solr云(集群),当使用Solr Cloud模式运行时会显示此菜单。
  • Core Admin:Solr Core的管理界面,在这里可以添加SolrCore实例。
  • Java Properties:Solr在JVM 运行环境中的属性信息,包括类路径、文件编码、jvm内存设置等信息。
  • Tread Dump:显示Solr Server中当前活跃线程信息,同时也可以跟踪线程运行栈信息。
  • Core Selector:选择一个SolrCore进行详细操作。
Core Selector
  • Analysis:通过Analysis界面可以测试索引分析器和搜索分析器的执行情况。在Solr中,分析器是绑定在域的类型中的。
  • Dataimport可以定义数据导入处理器,从关系数据库将数据导入到Solr索引库中。默认没有配置,需要手工配置。
  • Documents:通过/update表示更新索引,Solr默认根据id(唯一约束)域来更新Document的内容,如果根据id值搜索不到id域则会执行添加操作,如果找到则更新。通过此菜单可以创建索引、更新索引、删除索引等操作。
  • Query:通过/select执行搜索索引,必须指定“q”查询条件方可搜索。

managed-schema

  1. field<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />

Field节点指定建立索引和查询数据的字段。

  • name:指定域的名称
  • type:指定域的类型
  • indexed:是否索引
  • stored:是否存储
  • required:是否必须
  • multiValued:是否多值,比如商品信息中,一个商品有多张图片,一个Field想存储多个值的话,必须将multiValued设置为true
  1. dynamicField<dynamicField name="*_i" type="pint" indexed="true" stored="true"/>

dynamicField 表示动态字段,可以动态定义一个字段,只要符合规则的字段都可以。

  • name:指定动态域的命名规则,*_i只要以_i结尾的字段都满足这个定义。
  • type:指定域的类型
  • indexed:是否索引
  • stored:是否存储
  1. uniqueKey<uniqueKey>id</uniqueKey>

指定唯一键。其中的id是在Field标签中已经定义好的域名,而且该域要设置为required为true。 一个managed-schema文件中必须有且仅有一个唯一键。

  1. copyField<copyField source="cat" dest="_text_"/>

通过copyField,可以把一个字段的值复制到另一个字段中,也可以把多个字段的值同时复制到另一个字段中,这样搜索的时候都可以根据一个字段来进行搜索。

  • source:要复制的源Field域的域名
  • dest:目标Field域的域名
    由dest指的的目标Field域,必须设置multiValued为true。
  1. fieldType

fieldType节点主要用来定义域的类型。

  • name:指定域类型的名称
  • class:指定该域类型对应的solr的类型
  • analyzer:指定分析器
  • type:index、query,分别指定搜索和索引时的分析器
  • tokenizer:指定分词器
  • filter:指定过滤器
  • positionIncrementGap:可选属性,定义在同一个文档中此类型数据的空白间隔,避免短语匹配错误

solrconfig.xml

  1. datadir<dataDir>${solr.data.dir:}</dataDir>

每个SolrCore都有自己的索引文件目录 ,默认在SolrCore目录下的data中。

  1. luceneMatchVersion<luceneMatchVersion>7.4.0</luceneMatchVersion>

表示solr底层使用的是Lucene7.4.0版本

  1. lib<lib dir="${solr.install.dir:../../../..}/contrib/extraction/lib" regex=".*\.jar" />

表示Solr引用包的位置,当dir对应的目录不存在时候,会忽略此属性。solr.install.dir:表示solrcore的安装目录。

  1. requestHandler
explicit
json
true

requestHandler请求处理器,定义了索引和搜索的访问方式。 通过/update维护索引,可以完成索引的添加、修改、删除操作;通过/select搜索索引。

  1. 设置搜索参数完成搜索,搜索参数也可以设置一些默认值,如下
    <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"/>
    定义索引的存储方案,共有以下存储方案:
  • solr.StandardDirectoryFactory——这是一个基于文件系统存储目录的工厂,它会试图选择最好的实现基于你当前的操作系统和Java虚拟机版本。
  • solr.SimpleFSDirectoryFactory——适用于小型应用程序,不支持大数据和多线程。
  • solr.NIOFSDirectoryFactory——适用于多线程环境,但是不适用在windows平台(很慢),是因为JVM还存在bug。
  • solr.MMapDirectoryFactory——这个是solr3.1到4.0版本在linux64位系统下默认的实现。它是通过使用虚拟内存和内核特性调用mmap去访问存储在磁盘中的索引文件。它允许lucene或solr直接访问I/O缓存。如果不需要近实时搜索功能,使用此工厂是个不错的方案。
  • solr.NRTCachingDirectoryFactory——此工厂设计目的是存储部分索引在内存中,从而加快了近实时搜索的速度。
  • solr.RAMDirectoryFactory——这是一个内存存储方案,不能持久化存储,在系统重启或服务器crash时数据会丢失。且不支持索引复制。

转载地址:https://blog.csdn.net/qq_39739458/article/details/85325746 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:solr7.4配置中文分词(二)
下一篇:java8 新特性 Stream流 分组 排序 过滤 多条件去重

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月09日 19时03分56秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章