public/solr部署说明文档.md

4.3 KiB
Raw Blame History

solr部署说明文档

1、下载官方solr程序压缩包

下载链接:https://solr.apache.org/downloads.html

可根据项目需求下载对应版本

2、多java版本环境修改

当部署环境存在多个java版本时部署solr时需要修改solr的启动文件。举个栗子使用的是jdk1.6版本,假如我们准备部署solr 8.x以上版本,而solr 8.x需要jdk1.8以上版本的支持。若服务器上环境变量设置了JAVA_HOME指向jdk1.6版本的路径。那么我们就需要通过修改solr的启动批处理文件来进行1.8版本的指定。

修改方式如下:

  • windows

修改solr根目录/bin下的solr.cmd文件

@REM solr.cmd
@REM 在首行中增加一行如下语句
set "JAVA_HOME=JDK1.8版本的根路径"
  • linux

修改solr根目录/bin下的solr.sh文件

JAVA_HOME="JDK1.8版本的根路径"

3、中文分词类库加载准备

solr自身携带中文分词类库但需要在solr程序启动前拉到对应位置进行类加载。

solr根目录/contrib/analysis-extras/lucene-libs/目录下的lucene-analyzers-smartcn-8.9.0.jar(官方中文分词器)复制到solr根目录/server/solr-webapp/webapp/WEB-INF/lib/目录下。

4、启动服务进程

进入solr的bin目录,运行

solr start -e schemaless

-e为启动模式这里示例中使用无模式单机启动solr支持一下模式启动

  • cloud
  • techproducts
  • dih
  • schemaless

这里只以schemaless模式作为示例其他模式请自行查阅官方文档

5、创建服务核心

进入solr的bin目录,运行

solr create -c EntNameInfo

此处的EntNameInfo为核心名称

运行完成后看见返回SUCCESS字样即为创建成功

6、字段定义

进入solr根目录/example/schemaless/solr/EntNameInfo/conf目录,编辑器打开managed-schema文件。

注意以上示例为8.x版本。在旧版本中可能没有这个文件取而代之的是schema.xml文件。

6.1、分词字段类型定义

在与其他<fieldType></fieldType>标签同级的位置上加入

<!-- ChineseAnalyzer 自带的中文分词器 -->
<fieldType name="solr_cnAnalyzer" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
    </analyzer>
    <analyzer type="query">
        <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
    </analyzer>
</fieldType>

定义一个进行分词的字段

6.2、字段定义

在与其他<field></field>标签同级的位置上加入

  <field name="EntName" type="solr_cnAnalyzer" indexed="true" stored="true" tokenized="true"/>
  <field name="EntNo" type="string" indexed="true" required="true" stored="true"/>
  <field name="EntType" type="string" indexed="true" stored="true"/>
  <field name="EstDate" type="plong" uninvertible="true" indexed="true" stored="true"/>
  <field name="LeRep" type="solr_cnAnalyzer" indexed="true" stored="true" tokenized="true"/>
  <field name="OpState" type="string" indexed="true" stored="true"/>
  <field name="RegNO" type="string" indexed="true" stored="true"/>
  <field name="RegOrg" type="string" indexed="true" stored="true"/>
  <field name="corpKeywords" type="string" indexed="true" stored="true"/>
  <field name="corpName" type="text_general"/>
  <field name="datasourceKey" type="string" indexed="true" stored="true"/>
  <field name="lauptime" type="plong" uninvertible="true" indexed="true" stored="true"/>
  <field name="regCapital" type="pdoubles" multiValued="false" indexed="false" stored="true"/>
  <field name="regCapitalCoin" type="string" indexed="true" stored="true"/>
  <field name="smallMicroEnt" type="string" indexed="true" stored="true"/>
  <field name="timestampBin" type="string" uninvertible="true" indexed="true" stored="true"/>

在以上常用的属性中

  • type 指定字段类型
  • indexed 指定字段是否被索引
  • stored 指定字段的实际值是否被存储
  • tokenized 指定字段是否进行分词

7、重载核心

进入SolrAdmin管理界面进入Core Admin界面进行core重载以便配置加载。

core重载.png