solr简单搭建与使用

Posted hxqxiaoqi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了solr简单搭建与使用相关的知识,希望对你有一定的参考价值。

安装步骤:

java环境, jdk1.8

从官网下载最新的solr7.5

wget http://mirrors.hust.edu.cn/apache/lucene/solr/7.5.0/solr-7.5.0.tgz

解压 :tar -zxvf solr-7.5.0.tgz -C /usr/local/

添加环境变量:vim /etc/profile

#solr7.5

export PATH=$PATH:/usr/local/solr-7.5.0/bin/

启动失败原因:

这是因为使用的是root用户所以提示我们要加一个强制启动的参数,那么我们接受它的建议重新启动,输入命令./solr start -force ,当看到下面的输出的时候就说明我们启动成功了,这里我们使用的是它默认的端口,我们也可以加上-p参数来使用其它的端口

启动:solr start -force -p 8982

Solr相关命令:

solr 启动、停止、重启命令

solr start -p 端口号 -force

solr stop -all

solr restart -p 端口号 -force

三:使用命令添加/删除 core

Create

solr create -c name -force

delete

solr delete -c name

示例:创建名为 mote 的core,并访问这个core

访问:浏览器输入我们的ip+端口号就可以访问了

IK分词器

下载:ik-analyzer-solr7-7.x.jar

https://search.maven.org/search?q=com.github.magese

上传到 /usr/local/solr-7.5.0/server/solr-webapp/webapp/WEB-INF/lib/ 目录下

vim /usr/local/solr-7.5.0/server/solr/mote/conf/managed-schema

添加:

<!-- 定义ik分词器 -->

<fieldType name="text_ik" class="solr.TextField">

  <analyzer type="index">

      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false"/>

      <filter class="solr.LowerCaseFilterFactory"/>

  </analyzer>

  <analyzer type="query">

      <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true"/>

      <filter class="solr.LowerCaseFilterFactory"/>

  </analyzer>

</fieldType>

重启Solr   solr restart  -force

添加自定义字段:

例:

<fieldType name="text_ik" class="solr.TextField">

         <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>

     </fieldType>

     <field name="title_ik" type="text_ik" indexed="true" stored="true"/>

     <field name="website_id_ik" type="plong" indexed="true" stored="true" multiValued="false" />

     <fieldType name="int" class="solr.TrieIntField" positionIncrementGap="0" docValues="true" precisionStep="0"/>

     <field name="content_type_ik" type="int" indexed="true" stored="true" multiValued="false" />

     <field name="content_id_ik" type="plong" indexed="true" stored="true" multiValued="false" />

定义 ik分词器的 拓展/停用 词典

在 solr-7.5.0\server\solr-webapp\webapp\WEB-INF 新建classes目录

在classes新建三个文件

ext.dic         #用于扩展,添加词语

stopword.dic        #用于停用,添加词语

IKAnalyzer.cfg.xml     #用于定义扩展和停用

vim IKAnalyzer.cfg.xml

添加:

<?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">ext.dic;</entry>

     <!--用户可以在这里配置自己的扩展停止词字典-->

     <entry key="ext_stopwords">stopword.dic;</entry>

</properties>

solr restart  -force

测试分词

 

mysql数据库导入solr

下载 mysql 驱动包:mysql-connector-java-x.x.x.jar,绝大部分jar包在maven仓库都能找到

将 mysql 驱动包导入 solr :将下载下来的 mysql-connector-java-x.x.x.jar 拷贝到 solr\server\solr-webapp\webapp\WEB-INF\lib 下;

将solr{home}\dist目录下的:solr-dataimporthandler-7.4.0.jar和solr-dataimporthandler-extras-7.5.0.jar这两个jar包拷贝到 solr\server\solr-webapp\webapp\WEB-INF\lib下

vim /usr/local/solr-7.5.0/server/solr/mote/conf/solrconfig.xml

添加:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">

    <lst name="defaults">

        <str name="config">data-config.xml</str>

    </lst>

</requestHandler>

# solrconfig.xml配置文件主要定义了solr的一些处理规则,包括索引数据的存放位置,更新,删除,查询的一些规则配置。相当于是基础配置文件。

在solr的conf目录下创建data-config.xml文件,由solrconfig.xml定义

vim /usr/local/solr-7.5.0/server/solr/mote/conf/data-config.xml

添加:

<?xml version="1.0" encoding="UTF-8" ?>

<dataConfig>

<dataSource type="JdbcDataSource"

driver="com.mysql.jdbc.Driver"

url="jdbc:mysql://192.168.231.200:3306/huang"

#指定数据库库名

user="huang"

password="123123"/>

#指定数据库账号密码

<document>

<entity name="user1" query="SELECT * from user1">

#指定数据库表名,sql语句

<field column="id" name="id"/>

<field column="name" name="name"/>

#指定数据库字段,需要managed-schema配置文件中确定

</entity>

</document>

</dataConfig>

vim /usr/local/solr-7.5.0/server/solr/mote/conf/managed-schema

添加:

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

注:managed-schema文件本身已经有id字段的规则不需要添加managed_schema是在使用solr建立core时的配置(core连接配置和索引库),solr根据它确定如何对文档建立索引到索引库中,每个core在建立前都需要设计好managed_schema

重启solr

登入web界面测试

 

 

以上是关于solr简单搭建与使用的主要内容,如果未能解决你的问题,请参考以下文章

Solr集群(即SolrCloud)搭建与使用

Solr集群(即SolrCloud)搭建与使用

solr环境搭建&基本使用

Solr 6.6环境搭建与Solr定义

分享如何轻松搭建单机solr服务,轻松成为大牛

solr的搭建与配置