solr学习一:solr6.6单机环境Linux搭建

本文介绍如何在CentOS 6.5环境下安装配置Solr 6.6,并通过Tomcat 8集成,同时实现从MySQL数据库导入数据及创建索引的过程。此外,还详细说明了配置IKAnalyzer中文分词器的方法。

环境:centos6.5、jdk1.8、solr6.6、Tomcat8
1.准备jdk1.8和Tomcat8并配置好环境变量
2.下载solr6.6

wget http://apache.fayea.com/lucene/solr/6.6.0/solr-6.6.0.tgz

3.解压solr6.6

tar -axvf solr-6.6.0.tgz

4.将webapp文件夹复制到tomcat的webapps下,并更名为solr(可以为任意名称)

cp -r solr-6.6.0/server/solr-webapp/webapp tomcat8/webapps/solr

5.拷贝solr-6.6.0\server\lib\ext下的jar包到tomcat下的webapps\solr\WEB-INF\lib路径下

cp solr-6.6.0/server/lib/ext/*.jar tomcat8/webapps/solr/WEB-INF/lib/

6.拷贝solr-6.6.0\dist 下的solr-dataimporthandler-6.6.0.jar、solr-dataimporthandler-extras-6.6.0.jar 包到tomcat下的webapps\solr\WEB-INF\lib路径下

cp solr-6.6.0/dist/solr-dataimporthandler*.jar tomcat8/webapps/solr/WEB-INF/lib

7.拷贝solr-6.6.0\server\lib下的metrics开头的5个jar到tomcat下的webapps\solr\WEB-INF\lib路径下(metrics-core-3.2.2.jar、metrics-ganglia-3.2.2.jar、metrics-graphite-3.2.2.jar、metrics-jetty9-3.2.2.jar、metrics-jvm-3.2.2.jar)

cp solr-6.6.0/server/lib/metrics*.jar tomcat8/webapps/solr/WEB-INF/lib/

8.新建一个文件夹solr-home,并将solr-6.6.0/server/路径下solr文件夹中的内容拷贝过来

mkdir solr-home
cp -r solr-6.6.0/server/solr/* solr-home

9.在tomcat的webapps\solr\WEB-INF路径下创建classes文件夹,然后将solr-6.6.0\server\resources文件夹下的log4j.properties拷贝过去,并修改日志路径

mkdir tomcat8/webapps/solr/WEB-INF/classes
cp solr-6.6.0/server/resources/log4j.properties tomcat8/webapps/solr/WEB-INF/classes 

10.将solr-home的路径配置到tomcat下的webapps/solr/WEB-INF/web.xml;并修改权限,此处直接注释掉

<env-entry>
  <env-entry-name>solr/home</env-entry-name>
  <env-entry-value>/root/solrHome/solr-home</env-entry-value>
  <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

//中间省略...

<!--
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Disable TRACE</web-resource-name>
      <url-pattern>/</url-pattern>
      <http-method>TRACE</http-method>
    </web-resource-collection>
    <auth-constraint/>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Enable everything but TRACE</web-resource-name>
      <url-pattern>/</url-pattern>
      <http-method-omission>TRACE</http-method-omission>
    </web-resource-collection>
  </security-constraint>
  -->

11.启动tomcat,在浏览器输入地址:http://192.168.3.21:8180/solr/index.html

12.添加一个核myCore1:在solr-home下创建一个文件myCore1,复制solr-home/configsets/basic_configs/conf到myCore1中

mkdir solr-home/myCore1

cp -r solr-home/configsets/basic_configs/conf solr-home/myCore1

三.配置IK Analyzer中文分词器
1.下载并解压IK Analyzer,下载路径:https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/ik-analyzer/IKAnalyzer2012_u6.zip
2.将IK Analyzer的jar文件拷贝到tomcat8/webapps/solr/WEB-INF/lib

cp ./IKAnalyzer2012_u6.jar ../../tomcat8/webapps/solr/WEB-INF/lib 

3.将IK Analyzer的配置文件拷贝到tomcat8/webapps/solr/WEB-INF/classes

cp ./IKAnalyzer.cfg.xml ../../tomcat8/webapps/solr/WEB-INF/classes 
cp IKA/stopword.dic ../tomcat8/webapps/solr/WEB-INF/classes 

//可自定义词库
在IKAnalyzer.cfg.xml 文件中配置gdt.dic,然后创建一个gdt.dic文件
<entry key="ext_dict">gdt.dic;<entry>

4.修改myCore1/conf下的配置文件managed-schema,指定所需分词的字段

<!-- 中文分词器IKAnalyzer  -->
    <fieldType name="text_ik" class="solr.TextField">
        <!--索引时候的分词器-->
    <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
    <!--查询时候的分词器-->
    <analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

四.从mysql导入数据到solr,并创建索引
1.在soreconfig.xml的上面配置如下内容:

<!--数据库导入索引的配置文件 -->
  <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
      <lst name="defaults">
        <str name="config">data-config.xml</str>
      </lst>
  </requestHandler>

2.配置data-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
  <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/microservice_test" user="root" password="" batchSize="-1" />
  <document>
     <entity name="sys_user" query="select id ,username,password from sys_user">
       <!--column的id是数据库的id,name的id是managed_schema里面的id,id是必须,并且唯一的-->
       <field column="id" name="id" />
       <!--column的username是数据库的username字段,name的username是managed_schema里面的username,下面配置同理-->
       <field column="username" name="username"/>
       <field column="password" name="password"/>
     </entity>
  </document>
</dataConfig>

3.配置managed-schema

<!-- 本地mysql数据库字段 -->
<field name="username" type="string" indexed="true" stored="false"/>
<field name="password" type="string" indexed="true" stored="false"/>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值