luceen是基于java开发的api
solr是基于luceen开发的全文检索服务器,solr对外提供的是http服务,本质上就是一个war包
solr服务器的搭建过程(因为是基于java的所以,得先有jdk)
1,先把压缩包传送到linux传到服务器上,然后解压下来
2,解压下来的文件夹中 dist目录十分的重要,里面有solr war包,相当于solr的服务端,还有solrj的jar包,相当于solr的客户端。solrhome保存solr服务的所有配置文件
3,和tomcat做整合,所以tomcat也要传到服务器中
4,把solr的war包部署到tomcat中。即将dist下面的solr war包放到tomcat的webapp下。
5,解压缩,刚才放入tomcat的war包。启动tomcat就会自动的解压war包。进入tomcat目录下 执行 bin/start.sh
6,关闭tomcat,此时你会发现在webapp下面有一个solr的文件夹,这时候就应该把war包给删除了,不然启动tomcat的时候他又会自动的解压一遍。
7.复制jar包到刚才在webapp中的solr服务器中, cp example/lib/ext/* /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
8,篇日志solrhome cp -r example/solr /usr/local/solr/solrhome
9,告诉solr服务器solrhome在哪,最简单的办法就是修改solr服务器下面的web.xml文件
10,再次启动tomcat,如果此时在浏览器中输入 服务器ip:8080/solr 可以访问solr的页面的话,就是部署成功了
如果想使用中文解析器的话,那么推荐使用IKanalyzer。配置约束
1,先将IKanalyzer文件夹传入到服务器中。
2,进入ik文件夹中,把jar包加入到solr的服务器中lib文件夹中
3,把ik文件夹中配置文件和两个文件传入到solr服务器中的classes文件中,如果没有classes,就创建一个
4,定义filetype,在solrhome中定义,在solrhome中collection1中的conf文件中schema.xml是定义所有业务域的。
4,定义filed。
此时定义好solr以后,就应该使用java来使用solr了 用solrj
1,先创建一个solrserver的对象,
2,创建一个solrquery对象,
3,设置查询的条件,过滤条件,分页条件,排序条件,以及高亮的显示
4,执行查询,得到一个response对象
5,取出查询结果
6,取高亮的显示
此时如果网页的并发量十分大的话,搜索的人同时访问十分的大,那么可以将solr建立集群
在solr集群中zookeeper可以管理集群,
集群的架构:分为物理结构和逻辑结构
物理结构:一个solr集群,在这个集群里面有好几台的服务器,每台服务器上装一个solr服务,每一个core可以存放不同的索引
1,先建立一个solr-cloude
2,然后船zookeeper到服务器中,创建三个zookeeoer节点
3,因此复制将zookeeper复制到solr-cloude,复制三份
4,然后配置zookeeper ,先进入第一个节点中:1,创建data目录
2,在data目录下创建一个文件叫myid的文件并且编辑myid文件 在里面为此节点赋一个id值,例如为1
3.,进conf文件夹中, 看其中一个文件将其改为zoo.cfg
4.编辑这个文件,datadir的值改一下,clientport不能冲突,所以得注意,并且在后面加表示集群中的几个节点,端口号和ip
server.1(编号)=服务器所在的ip:2881(zookeeper内部通信的端口):3881(选举端口)
server.2(编号)=服务器所在的ip:2882(zookeeper内部通信的端口):3882(选举端口)
server.3(编号)=服务器所在的ip:2883(zookeeper内部通信的端口):3883(选举端口)
5,同样的配置配置其他两个目录下的节点,配置好以后,可以写一个批处理文件,启动三个节点
6,搭建玩zookeeper的集群以后,接着搭建solr集群。
1,有四个solr,说明要有四个tomcat,因为是在同一台服务器中,所以tomcat中的端口号不能相同,得改一下
2,然后把solr的文件复制到四个tomcatt中,修改每个web.xml文件,将solrhome的目录名改了,并且指定当前solr所对应
的tomcat的ip和端口号,
7,配置玩zookeeper和solr集群以后,接着要让zookeeper和tomcat关联在一起。需要改tomcat的文件,在tomcat中bin目录下catalina.sh文件,编辑文件需要改
JAVA_OPTS="-DzkHost=zookeeper的ip地址:端口号,zookeeper的ip地址:端口号,zookeeper的ip地址:端口号"
8,把配置文件上传到zookeeper,让zookeeper统一管理配置文件
如何上传呢??在solr的源文件夹里面的example文件夹中招zkcli可执行文件,然后输入命令
./zkcli.sh -zkhost 192.168.25.154:2181,192.168.25.154:2182,192.168.25.154:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf/ -confname myconf
让solr连接zookeeper ./zkCli.sh -server 192.168.25.154:2182
8,启动所有的tomcat
SolrCloud创建Collection的命令
http://192.168.25.154:8180/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
SolrCloud删除Collection的命令
http://192.168.25.154:8180/solr/admin/collections?action=DELETE&name=collection1
集群搭建成功以后。得会使用,
如何使用solrj来使用集群呢。
创建一个cloudsolrServer,构造方法中需要指定zookeeper的地址列表。
需要设置一个默认的collection,必须设置
创建一个文档对象,向文档中添加域。
把文档写入索引库
提交