Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。
solr安装:
1、由于solr是基于java开发的,所以需要java环境,所以得安装jdk。
2、下载tomcat,并安装。
3、下载solr,并解压。
4、将解压好的文件夹下找到solr项目(solr-5.3.1\server\solr-webapp ),复制到tomcat下的webapps下。
5、将 solr-5.3.1\server\lib\ext 文件夹底下的lib全部复制到tomcat底下的 solr/WEB-INF/libs/ 中
6、新建solrhome文件夹
7、修改solr项目下的WEB-IN
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/usr/solr/solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
8、启动tomcat即可。
9、配置中文分词器,以ik analyzer为例
进入solrhome/collections1/conf,修改schema.xml
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType> / /这里配置分词器类型
//name:需要分词的字段(与数据库对应),type:类型 ,stored:是否保存到solr中,false会为空
<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>
<field name="item_price" type="long" indexed="true" stored="true"/>
<field name="item_image" type="string" indexed="false" stored="true" />
<field name="item_category_name" type="string" indexed="true" stored="true" />
<field name="item_desc" type="text_ik" indexed="true" stored="true" />
//copyField 复制字段,multiValued="true" 相当于把copyField 下的所有字段整合在一起包含所有的source
<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_sell_point" dest="item_keywords"/>
<copyField source="item_category_name" dest="item_keywords"/>
<copyField source="item_desc" dest="item_keywords"/>
到这里基本就配置完了,接着就是javaAPI调用
如果不清楚,还可以参考一下连接 : https://my.oschina.net/u/238296/blog/597725
二、solr集群-----------solrcloud配置
1、solrcloud配置需要用到zookeeper。所以需要安装奇数个zookeeper。(都需要java环境),也需要配集群。
2、配置solr服务器。具体可参考单个服务器。
3、需要配置solrhome中的solr.xml
<solrcloud>
<str name="host">192.168.92.137</str> // 自己的ip地址
<int name="hostPort">8180</int> //tomcat端口
<str name="hostContext">${hostContext:solr}</str>
<int name="zkClientTimeout">${zkClientTimeout:30000}</int>
<bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
</solrcloud>
4、
将上边部署的solr单机的conf拷贝到/home/solr下。
执行下边的命令将/home/solr/conf下的配置文件上传到zookeeper。此命令在solr-4.10.3/example/scripts/cloud-scripts/目 录下:
./zkcli.sh -zkhost 192.168.25.150:2181,192.168.25.150:2182,192.168.25.150:2183 -cmd upconfig -confdir /usr/local/solrcloud/solrhome1/collection1/conf -confname myconf |
5、
修改每一台solr的tomcat 的 bin目录下catalina.sh文件中加入DzkHost指定zookeeper服务器地址:
JAVA_OPTS="-DzkHost=192.168.25.150:2181,192.168.25.150:2182,192.168.25.150:2183"
6、启动即可。