全文索引服务solr入门四之solr集群搭建与应用

经过前面几篇文章的努力,我们的solr服务终于跑起来了,可以对外提供服务了,虽然有一点小瑕疵(对中文支持不是很好,但可以通过IK分词来解决,示例可以看老夫之前的这篇文章),但还是存在一个致命的问题:单点!对于现代互联网公司,这个一个不可忍受的缺点,所以本节我们就来解决这个问题,在搭建集群之前,我们先看看要搭建的集群的目标: 从这张图上,我们可以清晰看到我们需要三台zookeeper服务器和四台solr服务器,一共七台服务器(实际上老夫去哪找那么多集群,所以使用伪分布式的方式搭建集群,即在同一台服务器上创建多个实例模拟集群),确定了目标之后,我们就开始搭建我们的集群。 四. zookeeper集群搭建 Zookeeper有一个选举机制,选举谁是leader谁是follower。成为主节点,需要得到半数以上的投票。尽可能为奇数节点。 创建三个zookeeper实例 在zookeeper1、2、3文件夹下分别创建一个data目录。在data目录下创建一个myid的文件。文件的内容zookeeper1下就是1,zookeeper2下就是2,zookeeper3下就是3。 需要修改zookeeper的配置文件。把Zookeeper1confzoo_sample.cfg改名为zoo.cfg(示例有误,配置文件中的dataDir路径需要使用“/”而不是“”) 启动zookeeper。 启动成功之后: 启动zookeeper的客户端,测试zookeeper是否好用。 五. Solr实例搭建 需要4个solr实例来完成。 第一步:创建4个tomcat实例 第二步:搭建4个solr的单机版环境(该系列的前几篇就写这个了)。 从复制过来的单机版: 修改tomcat的端口号。 修改solrhome的位置。修改web.xml 六. 集群搭建 搭建步骤 ①. 让zookeeper集群集中管理配置文件。把配置文件上传到zookeeper。 把solrhome/collection1/conf文件夹的内容上传到zookeeper集群。 把:D:tempSolrCloudsolrhome1collection1conf上传。 命令: java -classpath D:tempSolrCloudtomcat1webappssolrWEB-INFlib/* org.apache.solr.cloud.ZkCLI -zkhost 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183 -cmd upconfig -confdir D:tempSolrCloudsolrhome1collection1conf -confname myconf 需要保证执行命令之前,zookeeper集群是启动状态。 查看zookeeper下的配置文件。 修改每个solrhome下的solr.xml文件。 ...

July 10, 2016 · 1 min · 186 words · Bridge Li

全文索引服务solr入门三之solrJ的应用

三. 使用solrJ和spring集成 再上一篇和上上一篇文章中我们先搭建了一个solr服务器和学习了solr服务器后台的使用,这一次我们将直接进入实战:和spring集成,在继承之前我们先看看所需要的solr的jar文件都是那些(spring的那些大家就自己玩吧,我相信都知道的) 所需的jar文件 直接上图片,就是图上的这些图片,当然大家可以自己找maven依赖(jar文件这个最简单了,没有的话一定会报classnotfoundException,加上就好了) spring的配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd "> <!&#8211; 配置扫描包 &#8211;> <context:component-scan base-package="cn.bridgeli"/> <!&#8211; 配置注解驱动 &#8211;> <mvc:annotation-driven/> <!&#8211; jsp视图解析器 &#8211;> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" > <!&#8211; 前缀 &#8211;> <property name="prefix" value="/WEB-INF/jsp/"></property> <!&#8211; 后缀 &#8211;> <property name="suffix" value=".jsp"></property> </bean> <!&#8211; 单机版solr &#8211;> <bean class="org.apache.solr.client.solrj.impl.HttpSolrServer"> <constructor-arg name="baseURL" value="http://localhost:8080/solr/"></constructor-arg> </bean> <!&#8211; 集群版SolrCloud &#8211;> <!&#8211; <bean class="org.apache.solr.client.solrj.impl.CloudSolrServer"> <constructor-arg name="zkHost" value="127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"></constructor-arg> <property name="defaultCollection" value="collection2"></property> </bean> &#8211;> </beans> 简单吧,大家只要注意到单机版就行了,因为我们这次只用到了单机版,下面就要看源码实现了 ...

June 26, 2016 · 3 min · 585 words · Bridge Li

全文索引服务solr入门二之认识管理后台

二. 认识solr管理后台 上一篇文章中我们搭建起来的其实就是一个solr管理后台,这节课我们就是来简单认识他,具体的操作当然由大家自己试验了。下面我们先直接选择左侧的默认collection1你会看到下面出来很多东西,其中有几个比较重要:Analyzer、Documents、Query,下面我们认识第一个:Analyzer。 认识Analyzer 查看当前索引库中的字段列表,及分词效果。 ①. 域、字段列表:所有的域都是定义在schema.xml配置文件中。在solr中域必须是先定义后使用。 如果想修改域的定义及自定义域需要修改schema.xml。 ②. 查看域的分词效果。 可以直接在Field Value中贴一段文字,然后点击按钮Analyzer Values,查看效果。 需要说明的是:默认对英文支持尚可,中文支持很差。实际生产用zk中文分词 Documents 索引库的维护功能。可以对索引库进行增删改操作。 ①. 添加文档 I. 在solr中一条记录就是一个文档。 II. 文档可以使用json数据格式描述:key就是域名(字段名),value:值。 III. 在solr中每个文档必须有一个id域。类似于关系型数据库中表的主键。必须有且不能重复。 IV. 域必须先定义后使用。必须在schema.xml中定义。 ②. 更新文档 添加一个新的文档如果id存在会想把id对应的文档删除,然后再添加以新的。先删除后添加。 ③. 删除文档 I. 根据id删除 <delete> <id>a001</id> </delete> <commit/> II. 根据查询删除 删除所有文档: <delete> <query>\*:\*</query> </delete> <commit/> 删除指定id的文档: <delete> <query>id:change.me</query> </delete> <commit/> Query 查询索引库 q:查询条件 fq:过滤条件,查询语句和查询的语法完全相同。可以设置多个过滤条件 sort:排序条件 start rows:分页条件。start起始记录,rows每页显示的记录数。 fl:返回结果中域的列表 df:默认搜索域 hl:高亮显示 hl.fl:高亮显示的域 hl.simple.pre:高亮前缀 hl.simple.post:高亮后缀 ...

June 11, 2016 · 1 min · 63 words · Bridge Li

全文索引服务solr入门一之单机版服务器搭建

一直对全文索引很感兴趣,但由于工作上一直没用到,所以就没有上心去看,有一次闲着无聊,偶然发现传智播客的公开课上有一节讲这个的,听了一下还不错,于是整理成笔记,供老夫和其他朋友需要的时候参考。 老夫相信看这篇文章的人对solr一定有所了解,不了解的请用Google百度一下,所以虽然是一个系列,但这里老夫只会讲怎么用,争取让看了这个系列文章的人能里面先跑起来,好了,下面直接切入主题。 一. solr的安装与配置 solr的运行环境 ① . 需要安装jdk,要求jdk的版本为1.7.0以上版本。 ② . Tomcat要求7以上版本。 ③ . 操作系统:linux、windows都可以。 Solr和tomcat的集成 ① . 安装jdk、安装tomcat ② . 把solr-4.10.4.zip包解压。 ③ . 把dist目录下的solr-4.10.3.war文件放到tomcat下webapp目录下。改名为solr.war。改名不是必须的,为了方便访问。 ④ . 解压war包。启动tomcat自动解压。 ⑤ . 把solr.war删除。删除war包时要关闭tomcat。 ⑥ . 把D:tempsolr-4.10.3examplelibext目录下的所有的jar包添加到solr工程中。D:tempapache-tomcat-7.0.53webappssolrWEB-INFlib ⑦ . 创建一个solrhome(solr所有配置文件存放的目录)。 把sorl文件夹复制到其他路径下,改名为solrhome,改名的目的是为了便于理解。 ⑧. 告诉sorl服务器solrhome的位置。 修改solr工程的web.xml文件。 D:tempsolrhomecollection1:索引库存放的位置。 ⑨ . 启动tomcat。 访问:http://localhost:8080/solr,如果看到下面这个界面,那么就是成功了 至此一个单机版的solr服务器就搭建起来了,比较简单,接下来的第二篇会老夫会介绍这个服务器搭建起来以后怎么玩

May 29, 2016 · 1 min · 46 words · Bridge Li