solr学习笔记

1、作用

提高对于非结构化数据的查询效率

2.原理

a.基于lucene
b.从非结构化数据中提取信息,构建索引,通过索引进行全文检索
c.词(term)和文档(document)是多对多关系
    一个term下对应一个文档倒排链表,链表中存有每个文档的id
    每个文档对应多个term
d.多重查询是对term下链表取交集并集等操作

3.概念

a.field
    代表一个被索引或存储的字段
    name属性:字段类型,用于缩小查询范围
    indexed:是否使用这个字段进行搜索
    Tokenized:是否使用这个字段的整体数据进行查询
    stored:是否在搜索页面展示
b.filedType
    定义了数据类型和查询时使用的分词器
c.copyfield
    dest域是每一个source域的并集
    multivalue设置为true:source域的交集都是对应多条document,应该认为是multivalue
d.solrcore
    文件结构主要包括索引和配置文件。
    主要配置文件:solrconfig.xml和schema.xml
    相当于一个索引库(类比数据库|表空间)

4.solr安装
转载:http://www.cnblogs.com/guxiong/p/6284938.html

1.需要的安装包:apache-tomcat-7.0.47.tar.gz、solr-4.10.3.tgz.tgz(jdk自行安装)

2.解压tomcat并创建solr文件夹

[root@localhost ~]# tar -zxf apache-tomcat-7.0.47.tar.gz
[root@localhost ~]# mkdir /usr/local/solr
3.将tomcat解压后的文件夹拷贝到solr的tomcat文件夹中

[root@localhost ~]# cp apache-tomcat-7.0.47 /usr/local/solr/tomcat -r
4.把solr的压缩包上传到服务器后并解压,然后把/root/solr-4.10.3/dist/solr-4.10.3.war包部署到tomcat下。并改名为solr.war

[root@localhost ~]# tar -zxf solr-4.10.3.tgz.tgz
[root@localhost ~]# cp solr-4.10.3.war /usr/local/solr/tomcat/webapps/solr.war
5.解压war包。启动tomcat自动解压。然后关闭tomcat,删除war包

6.把/root/solr-4.10.3/example/lib/ext 目录下所有的jar包复制到solr工程中

[root@localhost ext]# cp * /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
7.创建solrhome文件夹,该文件夹用来存放solr服务器所有配置文件。将/root/solr-4.10.3/example中的solr文件夹下文件(不是文件夹)拷贝至solrhome

[root@localhost example]# cp -r solr /usr/local/solr/solrhome
8.在solr工程中的web.xml文件中指定solrhome的位置
 <env-entry>
   <env-entry-name>solr/home</env-entry-name>
   <env-entry-value>/usr/local/solr/solrhome</env-entry-value>
   <env-entry-type>java.lang.String</env-entry-type>
</env-entry>
需要删除注释符
-------------------------solr安装完成---------------------------------
-----中文分析器配置

9.把IK-Analyzer分析器的文件夹上传到服务器

10.把分析器的jar包添加到solr工程中

[root@localhost IKAnalyzer2012FF_hf1]# cp IKAnalyzer2012FF_u1.jar /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
11.把IKAnalyzer需要的扩展词典及停用词词典、配置文件复制到solr工程的WEB-INF/classes文件夹中

[root@localhost IKAnalyzer2012FF_hf1]# cp IKAnalyzer.cfg.xml ext_stopword.dic mydict.dic /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes
12.在solrhome/collection1/conf/schema.xml中配置filedType



-----业务字段配置
13.在solrhome/collection1/conf/schema.xml中配置,根据业务需要选择相应的字段对应solr的字段

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

<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="user_name" dest="item_keywords"/>
<copyField source="user_address" dest="item_keywords"/>


 14.重启tomcat
 -------------------------以上步骤合并为--------------------------------------
 1.解压solr-4.10.3.tgz.tgz
 2.将solr.rar解压到/usr/local下
 2.配置业务字段

5.集群安装
转载:http://blog.csdn.net/jiangchao858/article/details/52572635

1.mkdir /usr/local/solr-cloud
2.复制三份zookeeper
cp -r zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper01
cp -r zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper02
cp -r zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper03
3.创建data目录和myid文件
    mkdir data
    echo 1 >>myid
    echo 2 >>myid
    echo 3 >>myid
4.将zookeeper01\conf 下zoo_sample.cfg更名为zoo.cfg
    在cfg中均做如下配置,只需修改端口号与datadir
    dataDir=/usr/local/solr-cloud/zookeeper01/data
    clientPort=2181#对外提供的端口号
    server.1=127.0.0.1:2881:3881#内部通信和投票选举的端口号
    server.2=127.0.0.1:2882:3882
    server.3=127.0.0.1:2883:3883
5.启动每个zookeeper
6.复制四份solrhome
cp -r /usr/local/solr/solrhome /usr/local/solr-cloud/solrhome01
cp -r /usr/local/solr/solrhome /usr/local/solr-cloud/solrhome02
cp -r /usr/local/solr/solrhome /usr/local/solr-cloud/solrhome03
cp -r /usr/local/solr/solrhome /usr/local/solr-cloud/solrhome04
7.复制四份tomcat
cp -r /usr/local/solr/apache-tomcat-7.0.52 /usr/local/solr-cloud/tomcat04
8.修改每一份下的server.xml
    <Server port="8004" shutdown="SHUTDOWN">
    <Connector port="8084" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Connector port="8014" protocol="AJP/1.3" redirectPort="8443" />
9.修改每一份下solr项目的web.xml
    <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/local/solr-cloud/solrhome01</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>
10.修改每一份solr下的solr.xml
    <int name="hostPort">${jetty.port:8084}</int>
11.上传配置文件到zookeeper
    cd /usr/local/src/solr-4.10.3/example/scripts/cloud-scripts

    ./zkcli.sh -zkhost 192.168.205.134:2181,192.168.205.134:2182,192.168.205.134:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf -confname myconf
    查看上传状态
     cd /usr/local/solr/solr-cloud/zookeeper01/bin
     ./zkCli.sh -server 192.168.205.134:2181
     ls /configs/myconf
12.修改每一份tomcat下bin下的catalina.sh
    添加JAVA_OPTS="-DzkHost=192.168.37.161:3181,192.168.37.161:3182,192.168.37.161:3183"
13.启动所有tomcat

之前出现了: Zookeeper is not configured for this Solr Core. Please try connecting to an alternate zookeeper address.的报错
经检查是JAVA_OPTS拼写错误,修改后正常

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值