zl程序教程

您现在的位置是:首页 >  系统

当前栏目

linux - solr 安装 与创建 core

Linux安装Core 创建 Solr
2023-09-14 09:06:39 时间

1.去apache官网下载solr的tgz版本压缩文件

官网路径   https://solr.apache.org/downloads.html   

win10 教程在这里 solr -window 安装与启动 - 岑惜 - 博客园 (cnblogs.com)

2.将压缩文件上传linux,放入需要的文件夹内,我这里是  solr-8.11.1.tgz

解压指令 ,解压到当前文件夹并新建一个同名文件夹

tar -zxvf solr-8.11.1.tgz -C ./

 3.安装ik分词

进入solr的lib文件夹

cd /solr-8.11.1/server/solr-webapp/webapp/WEB-INF/lib

这里版本是solr ,所以必须使用ik版本为8的jar包,

直接将jar放入lib里即可

jar包这里我就不提供了,如果ik分词器不好用,可以自制一个分词器jar包

回到上一级,

cd ../

新建一个 classes 文件夹,存放ik分词器资源

mkdir classes

 

进入classes文件夹

然后把这三个文件放入其中,创建时必须保存为无bom的

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
<properties>  
    <comment>IK Analyzer 扩展配置</comment>
    <!--用户可以在这里配置自己的扩展字典 -->
    <entry key="ext_dict">hotword.dic;</entry>
    
    <!--用户可以在这里配置自己的扩展停止词字典-->
    <entry key="ext_stopwords">stopword.dic;</entry> 
    
</properties>
IKAnalyzer.cfg.xml

两个dic里面则是字符串

 

 这里就不写出来了

#####

 注意了,千万不要用xshell 直接使用 rz 上传这两个文件dic,会导致其一行一行的上传,如下图,真是服了这个老6

 

 

我是将其打成zip后上传再解压,需要安装zip解压工具

yum install -y unzip

解压指令

unzip classes.zip

 

4.创建core核心

进入solr文件夹

我的位置是

/home/plug/solr8/solr-8.11.1/server/solr

/home/plug/solr8/solr-8.11.1是solr的根目录,进入自己的哈

里面就这些

 

 

 给自己的core创建文件夹,根据自己需要来,名字自己定

mkdir mycore

 

 

 然后将模板配置文件复制进入,或者直接在solr控制台创建,【solr控制台创建如果找不到core文件夹会报错的】

然后拷贝配置模板 conf 文件夹 到 新core里

cp -r /home/plug/solr8/solr-8.11.1/server/solr/configsets/sample_techproducts_configs/conf /home/plug/solr8/solr-8.11.1/server/solr/mycore

启动solr

进入bin目录

cd /home/plug/solr8/solr-8.11.1/bin

 

启动
./solr start -force
停止
./solr stop -all
查看状态
./solr status

 执行启动指令

 

 

 查看状态

 

 

 现在可以访问了

如果之间访问8983端口需要在防火墙开启这个端口,我是使用nginx路由的 【linux是在本地虚拟机安装的,如果是云服务器,则去安全策略组里开放端口】

我的地址为

http://192.168.254.136:9100/solr/

如果直接访问solr端口则为  http://192.168.254.136:8983/solr/

 

 

 

 

创建core,名称必须与文件夹相同

出现下图表示成功

 

 

 将编辑好的字段配置文件拷贝到 core 里的 managed-schema 

 

 

 位置在 

/home/plug/solr8/solr-8.11.1/server/solr/mycore/conf

 

 

 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>
    <fieldType name="pint" class="solr.IntPointField" docValues="true"/>

    <!--单个字符解析器-->
    <fieldType name="text_inclunum" class="solr.TextField" positionIncrementGap="100">
        <analyzer type="index">
            <tokenizer class="solr.WhitespaceTokenizerFactory"/>
            <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="50" />
        </analyzer>
        <analyzer type="query">
            <tokenizer class="solr.WhitespaceTokenizerFactory"/>
            <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="50" />
        </analyzer>
    </fieldType>
View Code

部分1 是 数据类型

部分2 是字段

覆盖原来的即可,然后 重启 或者 在控制台刷新