zookeeper部署实战

作者: 金沙澳门官网网址  发布:2019-11-28

4. 将solr-6.6.0/server/solr下的文件拷贝至新建的solr-home下

[root@solr_1 ~]# mkdir /opt/solr/solr-home
[root@solr_1 ~]#  cp -r /opt/solr/server/solr/* /opt/solr/solr-home/
1. 引入mysql-connectX.jar包

注意:版本不一样也可能导致失败,这里使用5.x版本成功

1. 解压ikanalyzer-solr6.5.zip

[root@solr_1 ~]# unzip ikanalyzer-solr6.5.zip
[root@solr_1 ~]# mv ikanalyzer-solr6.5 /opt/

把ext.dic、IKAnalyzer.cfg.xml和stopword.dic复制到apache-tomcat-8.5.20webappssolrWEB-INFclasses中,

[root@solr_1 ~]# mkdir /opt/tomcat/webapps/solr/WEB-INF/classes
[root@solr_1 ~]# cp /opt/ikanalyzer-solr6.5/ikanalyzer-solr5/ext.dic /opt/ikanalyzer-solr6.5/ikanalyzer-solr5/IKAnalyzer.cfg.xml /opt/ikanalyzer-solr6.5/ikanalyzer-solr5/stopword.dic  /opt/tomcat/webapps/solr/WEB-INF/classes

把ik-analyzer-solr5-5.x.jar 和 solr-analyzer-ik-5.1.0.jar复制到apache-tomcat-8.5.20/webapps/solr/WEB-INF/lib中;

[root@solr_1 ~]# cp /opt/ikanalyzer-solr6.5/ikanalyzer-solr5/*.jar  /opt/tomcat/webapps/solr/WEB-INF/lib/
3. 页面导入数据

图片 1

导入可能出错,可以看tomcat启动时的java窗口

图片 2

  • 查询测试
![](https://upload-images.jianshu.io/upload_images/1901769-0cd293cc2be20d52.png)

四、同义词

2. 配置IKAnalyzer中文分词
  • 把ik-analyzer-solrx.jar复制到*tomcat-8.5.9webappssolrWEB-INFlib*
  • 把如整合包中的如下文件复制*tomcat-8.5.9webappssolrWEB-INFlibclasses*下

图片 3

  • 编辑solr_homesolrconfmanaged-schema,添加
    <fieldType name="text_ik" class="solr.TextField">  
        <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>  
    </fieldType> 

6. 测试

图片 4

3. 查看配置界面

启动tomcat,输入地址:

http://localhost:8080/solr/index.html

图片 5

图片 6

界面操作后面再细谈

1. 添加联想类型

首先需要加上用以联想的字段,这里假设我们对name字段进行联想,配置如下(managed-schema文件):

<field name="name" type="text_ik" multiValued="false" indexed="true" stored="true"/>
<field name="suggestion" type="text_suggest" indexed="true" stored="true" multiValued="true" /> 
<copyField source="name" dest="suggestion"/>

suggestion字段即为suggest联想所取的字段。这里将suggestion字段设为text_suggest类型,text_suggest是一个自定义的类型,具体作用和配置后面再说。然后利用copyField将name字段拷贝到suggestion字段。那么为什么我们不直接对name字段进行联想,而是专门建立一个字段把name字段拷贝过去,乃至专门建立了一个字段类型呢?在配置中我们可以看到,name字段采用了IKAnalyzer进行了中文分词,如果我们直接对name字段进行分词,则联想出来的就会是分词之后的结果。例如期望联想的记录是“先吃水果然后吃雪糕”,最后联想出来的却是“先吃”。

1. 配置solr项目
  • 解压下载的solr,把solr-6.2.0serversolr-webapp下的webapp复制到tomcatwebapps下并更名为solr

solr项目内容:

图片 7

  • solr-6.2.0serverlibext下的jar包复制到tomcat-8.5.9webappssolrWEB-INFlib

    图片 8

  • 把问solr-6.2.0dist下含“dataimport”的jar包也复制到如上位置(该jar包用来导入数据)

  • solr-6.2.0exampleresources下的log4j.properties复制到tomcat-8.5.9webappssolrWEB-INFclasses下(没有classes改目录先创建)

六、集成zookeeper

本实例采用zookeeper3.4.10

1. 下载IKAnalyzer中文分词包并解压

http://download.csdn.net/detail/by_false/9645175

整合包内容:

图片 9

七、Solr集群的使用

solr环境搭建

下载solr6.2和配置jdk,tomcat略过

图片 10

说明:
solr_home:用来放core
core:装索引和数据的地方
document:索引和数据
Field:字段,相当于数据库的字段
FieldType:字段类型

4. requestHandler配置

接下来我们需要配置suggest模块的requestHandler。编辑solrconfig.xml文件,添加如下配置:

<requestHandler name="/suggest" class="org.apache.solr.handler.component.SearchHandler">
        <lst name="defaults">
            <str name="suggest">true</str>
            <str name="suggest.dictionary">suggest</str>
            <str name="suggest.count">10</str>
        </lst>
        <arr name="components">
            <str>suggest</str>
        </arr>
    </requestHandler>

下面解释配置中涉及到的参数。suggest参数不用说了,必须为true;

suggest.dictionary为suggest操作所需要用到的字典,应当与上面suggest模块配置中的name属性保持一致;

suggest.count为候选词数量,这里为10。

具体配置可在solr官网中找到:

2. 编辑配置文件
  • solr_homesolrconfsolrconfig.xml添加如下标签
<requestHandler name="/dataimport" class="solr.DataImportHandler">
    <lst name="defaults">
      <str name="config">solr-data-config.xml</str> <!--该文件名可以任意,但创建的文件要与之对应-->
    </lst>
  </requestHandler>
  • 编辑/创建solr_homesolrconfsolr-data-config.xml,添加如下内容(具体请根据需求配置)
<dataConfig>
<dataSource name="source1"
            type="JdbcDataSource"
            driver="com.mysql.jdbc.Driver"
            url="jdbc:mysql://192.168.88.112:3306/ppppx?characterEncoding=utf-8&autoReconnect=true"
            user="root"
            password="root">
</dataSource>

  <document>
    <entity name="test" dataSource="source1" query="SELECT goods_id,goods_price,goods_name,goods_jingle,store_id,store_name,goods_image FROM ppppx_goods">
        <!--当数据库字段名和managed-schema字段不一致时配置

        <field column="goods_id" name="goods_id" />
        <field column="goods_name" name="goods_name" />
        <field column="goods_jingle" name="goods_jingle" />
        <field column="goods_price" name="goods_price" />
        <field column="store_id" name="store_id" />
        <field column="store_name" name="store_name" />
        <field column="goods_image" name="goods_image" />
        -->

    </entity>
  </document>
</dataConfig>
<!--
    <entity name="entity名称" dataSource="选择一个数据源" query="查询语句,得到的结果会在solr的core中建立索引">
        <field column="数据库表字段" name="业务字段" /> //业务字段需要与managed-schema中的Field对应
    </entity>
-->
  • 编辑solr_homesolrconfmanagedo-schema.xml,添加
<!--业务字段-->
   <field name="goods_id" type="int" indexed="true" stored="true" required="true" multiValued="false" /> 
   <field name="goods_name" type="text_ik" indexed="true" stored="true" /><!--需要使用中文分词的type选"text_ik"-->
   <field name="goods_price" type="double" indexed="true" stored="true" />
   <field name="goods_jingle" type="text_ik" indexed="true" stored="true" />
   <field name="store_id" type="int" indexed="true" stored="true" />
   <field name="store_name" type="text_ik" indexed="true" stored="true" />
   <field name="goods_image" type="string" indexed="true" stored="true" />

   <!--为copyFiled配置字段-->
   <field name="goods_search" type="text_ik" indexed="true" stored="false" multiValued="true"/>
   <!--为copyFiled配置字段-->
   <!--业务字段-->

修改

<uniqueKey>id</uniqueKey>

为,并且注释掉id字段

<!--<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />-->
<uniqueKey>goods_id</uniqueKey>

注意:编辑完成后,记得使用utf-8的编码保存

<font color="red">补充:字段详解</font>

3. 复制所需jar包到tomcat中solr项目的lib下

① 将solr-6.6.0/server/lib/ext下的jar、

② 将solr-6.6.0/server/lib下以metrics开头的5个jar(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)、

③ 将solr-6.6.0/dist/下的solr-dataimporthandler-6.6.0.jar和solr-dataimporthandler-extras-6.6.0.jar

拷贝到apache-tomcat-8.5.20/webapps/solr/WEB-INF/lib下

[root@solr_1 ~]# cp  /opt/solr/server/lib/ext/*.jar /opt/solr/server/lib/metrics*.jar  /opt/solr/dist/solr-dataimporthandler-*.jar   /opt/tomcat/webapps/solr/WEB-INF/lib/
2. 配置solr核心目录
  • 在任意位置创建solr_home目录,并且把*solr-6.2.0exampleexample-DIHsolr*下的任意一个core和solr.xml放到solr_home目录下(这里我选的是solr)

solr_home内容:

图片 11

  • tomcat-8.5.9webappssolrWEB-INFweb.xml中指明solr_home
    <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>D:tomcat-8.5.9webappssolrsolr_home</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

1. 在/opt/下解压tomcat、solr

[root@solr_1 ~]# tar -xf apache-tomcat-8.5.23.tar.gz -C /opt/
[root@solr_1 ~]# tar -xf solr-6.6.2.tgz    -C /opt/
[root@solr_1 ~]# cd  /opt
[root@solr_1 opt]# ln -sv apache-tomcat-8.5.23 tomcat
[root@solr_1 opt]# ln -sv solr-6.6.2 solr

solr配置中文分词

3.在solrconfig.xml的同级目录下新建data-config.xml

详细配置:

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
  <dataSource name="source1" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.29.100:3306/test1" user="root" password="123456"/>
  <document name="salesDoc">
    <entity pk="id" dataSource="source1" name="user"
      query="select id,name,sex,age,insertTime from user"
      deltaQuery="select id,name,sex,age,insertTime from user where insertTime >'${dih.last_index_time}'">
      <field name="id" column="id"/>
      <field name="name" column="name"/>
      <field name="sex" column="sex"/>
      <field name="age" column="age"/>
      <field name="insertTime" column="insertTime"/>
    </entity>
  </document>
</dataConfig>

配置说明:

 

  dataSource:设置数据源
  document:Solr的信息的基本单位,它是一组描述某些事物的数据集合
  entity:对应数据表
  pk:表主键
  dataSource:指定使用哪个数据源
  name:表名
  query:查询sql
   deltaQuery:增量更新时使用的查询sql
   ${dih.last_index_time}:最后更新时间
  field:表字段

 

solr导入数据库

5. 创建一个两片的collection,每片是一主一备。

在浏览器中访问:

连接中需要修改的内容:

ip:服务器ip

name:数据集名称

numShards:数据集有几个片区

replicationFactor:每一个片区提供服务的机器数量(小于机器总数)

3. 测试分词

图片 12

2. 在solr-homecollection1confsynonyms.txt中添加同义词

hell,二是

诛仙,诛仙2,梦幻诛仙

9. 启动tomcat

在浏览器输入地址:

图片 13

4.重启tomcat,并验证是否成功

在mysql中增加一条数据,等待1分钟,在solr的管理页面查看是否有增加数据

图片 14

3. 重新启动tomcat

 图片 15

1.将solr-dataimportscheduler-1.1.jar拷贝到tomcat中solr的lib目录下面

5.修改managed-schema

    <field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="name" type="text_ik" indexed="true" stored="true"/>
    <field name="sex" type="int" indexed="true" stored="true"/>
    <field name="age" type="int" indexed="true" stored="true"/>
    <field name="insertTime" type="int" indexed="true" stored="true"/>

4. 使用collections管理功能

添加collection

 图片 16

 说明:

  config set:配置文件存放位置
  numShards:片区数量
  replicationFactor:每一个片区提供服务的机器数量(小于机器总数)
  Show advanced 显示高级设置
  maxShardsPerNode:最大片区数量

(5、6 非必须步骤)

8. 修改solr的端口与tomcat相同

修改/usr/local/solr/solr-home/solr.xml中的

<int name="hostPort">${jetty.port:8080}</int>

八 对数据库数据进行索引

数据库主机以及账号密码:

    mysql: 192.168.29.100:3306
    user:root
    password:123456

九 、定时增量更新索引

5. 建立索引

这里我们就已经把suggest模块配置完毕了。如果suggest模块配置中buildOnStartup设置为false,则需要手动建立一次索引。建立索引链接形如:

图片 17

2. 修改每一台solr的tomcat 的 bin目录下catalina.sh文件

在其中加入DzkHost指定zookeeper服务器地址:

JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS"

# Register custom URL handlers
# Do this here so custom URL handles (specifically 'war:...') can be used in the security policy
JAVA_OPTS="$JAVA_OPTS -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"
JAVA_OPTS="$JAVA_OPTS -DzkHost=192.168.29.110:2181,192.168.29.120:2181,192.168.29.130:2181"

(上方标红的为添加内容)

6. 删除collection1.

连接中需要修改的内容:

ip:服务器ip

name:数据集名称

3. 重启tomcat

进入

图片 18

本文由金沙澳门官网发布于金沙澳门官网网址,转载请注明出处:zookeeper部署实战

关键词: 金沙澳门官网

上一篇:MakeFile
下一篇:没有了