知识点
相关文章
更多最近更新
更多Resin上部署Solr4.5.1 简介
2019-03-27 01:00|来源: 网路
Solr 4.5.1 配置
各软件版本:
- solr4.5.1
- resin3.1
- jdk1.6
一.准备solr的环境
- 去官方网站下载solr4.5.1.tgz
- 解压文件:tar --xzf solr4.5.1.tgz
- 创建solr文件夹 mkdir /data/web/solr
- 创建索引核心配置文件夹 mkdir /data/web/solr/home, 将 solr4.5.1/example/multicore 拷贝到该目录下,cp -r /data/web/solr-4.5.1/example/multicore /data/web/solr/home
- 拷贝solr的web工程文件 cp -r /data/web/solr-4.5.1/dist /data/web/solr/dist
二.resin配置
1.重命名solr-4.5.1文件中的dist文件夹下的solr的war包:mv solr-4.5.1.war solr.war
2.拷贝该solr.war 至resin中webapps目录下。
3.修改resin.conf
3.1 配置solr/home的JNDI,红色部分。
3.2 注意配置<tree-loader path="/data/web/solr/dist"/>,它可以自动加载该指定目录下的jar包
<host id="" root-directory=".">
<web-app document-directory="webapps/solr">
<stdout-log path="/data/logs/solr/resin/stdout.log" timestamp="[%H:%M:%S.%s]" rollover-period="1D"/>
<stderr-log path="/data/logs/solr/resin/stderr.log" timestamp="[%H:%M:%S.%s]" rollover-period="1D"/>
<character-encoding>utf-8</character-encoding>
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/data/web/solr/home/multicore</env-entry-value>
</env-entry>
<class-loader>
<tree-loader path="/data/web/solr/dist"/>
</class-loader>
</web-app>
</host>
三.上述配置完成后,启动resin
启动后常见的几个错误:
1.500 Servlet Exception
WEB-INF/web.xml:23: <web-app xmlns="http://java.sun.com/xml/ns/javaee">
is an unexpected top-level tag.
<web-app xmlns="http://caucho.com/ns/resin">,
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"> or
<web-app xmlns=""> are expected.
Syntax: (<web-app> | <web-app> | <web-app>)
解决方法:在web工程目录中 如 /data/web/resin_solr/webapps/solr/WEB-INF/ 修改web.xml ,直接将报错的三行删掉。
2.log相关日志包无法找到
解决方法:将 /data/web/solr-4.5.1/example/lib/ext中的jar包拷贝至CLASSPATH下
3.
15:21:45.055]429 [main] ERROR org.apache.solr.core.Config – Exception during parsing file: null:javax.xml.transform.TransformerException: java.lang.UnsupportedOperationException
[15:21:45.055] at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:71
解决方法:resin中XML解析的实现有问题,所以改用JVM自带的解析类 参考:http://wiki.apache.org/solr/SolrResin 中Resin's XML Parsing Problems,将web.xml中以下注释去掉。
<!-- Uncomment if you are trying to use a Resin version before 3.0.19.
Their XML implementation isn't entirely compatible with Xerces.
Below are the implementations to use with Sun's JVM.
<system-property javax.xml.xpath.XPathFactory=
"com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl"/>
<system-property javax.xml.parsers.DocumentBuilderFactory=
"com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"/>
<system-property javax.xml.parsers.SAXParserFactory=
"com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl"/>
-->
Solr4.5中文分词配置
一.配置IK中文分词器
下载最新的IK中文分词器 :IK Analyzer 2012FF_hf1.zip
1.解压IK Analyzer 2012FF_hf1.zip,将该目录下的IKAnalyzer.cfg.xml, ,stopword.dic放到resin_home/webapps/solr/WEB-INF/classes目录下。将IKAnalyzer2012FF_u1.jar包放到resin_home/webapps/solr/WEB-INF/lib中
2.配置schema.xml
<fieldType class="solr.TextField" >
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer" useSmart ="false"/>
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer" useSmart ="false"/>
</fieldType>
升级注意事项:
如果以前用的是solr3.x版本,现在升级到了solr4.x,需要对相应的IKAnalyzer相关jar包进行升级,solr3.x用的是 IKAnalyzer2012_u6.zip。
同时,Schemal.xml文件也需要进行相应的改变:
因为Solr4.0发布以后,官方取消了BaseTokenizerFactory接口,而直接使用Lucene Analyzer标准接口。因此IK分词器2012 FF版本也取消了org.wltea.analyzer.solr.IKTokenizerFactory类,所以Solr3.x版本中的schema.xml中存在如下配置<tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" useSmart ="false" isMaxWordLength="false"/>
在solr4.x中会报错
[17:41:30.205]org.apache.solr.common.SolrException: Plugin init failure for [schema.xml] fieldType "text": Plugin init failure for [schema.xml]
analyzer/tokenizer: Error loading
class 'org.wltea.analyzer.solr.IKTokenizerFactory'. Schema file is /data/web/solr/home/multicore/user/schema.xml
排除错误方法
1.改用新的schema.xml的配置方式
2.使用支持Solr4的IKTokenizerFactory
参考:http://henry2009.iteye.com/blog/1754127
二.配置mmseg4j分词器
下载mmseg4j 包https://code.google.com/p/mmseg4j/
Solr4.x需要下载1.9.0之后的版本,这里下载了mmseg4j-1.9.1.zip
解压该文件,将dist目录下的mmseg4j-analysis-1.9.1.jar,mmseg4j-core-1.9.1.jar,mmseg4j-solr-1.9.1.jar三个jar包放到resin_home/webapps/solr/WEB-INF/lib包下。
若使用的是1.9.x 可以不用在scheml.xml文件中配置 dicPath 参数,可以使用 mmseg4j-core-1.9.x.jar 里的 words.dic。
SolrCloud配置
1.配置zookeeper集群,配置zoo.cfg文件
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/web/zookeeper/data
dataLogDir=/data/web/zookeeper/logs
clientPort=2181
server.1=10.11.17.164:2888:3888
server.2=10.11.17.165:2888:3888
server.3=10.4.16.169:2888:3888
2.先在164机器上配置一台Solr,配置方法参考上面solr4.5.1配置
创建一个collection: http://solrUrl/admin/collections?action=CREATE&name=user&numShards=1&replicationFactor=1
3 .建立zookeeper 与solr 的关系
Solr中封装有上传配置文件操作的Jar包,通过以下方式使用
3.1 上传配置文件到zookeeper
java -classpath .:/data/web/resin_solr/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 10.11.17.164:2181,10.11.17.165:2181,10.4.16.169:2181 -confdir /data/web/solr/home/multicore/user/conf -confname userConf
3.2 关联配置文件与已有集合
java -classpath .:/data/web/resin_solr/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection user -confname userConf -zkhost 10.11.17.164:2181,10.11.17.165:2181,10.4.16.169:2181
note:user需为已创建的集合
进入zookeeper中 bin/ sh zkCli.sh -server 10.11.17.164:2181 查看配置文件的上传情况
启动165上的solr
访问 http://10.11.17.164:8083/#/~cloud 出现以下情况,表示配置成功。
4.创建collection 的两种方式
4.1通过solr提供的REST接口
http://solrUrl/admin/collections?action=CREATE&name=mycollection&numShards=1&replicationFactor=1
name:集合名称
numShards:集合分片数量
replicationFactor:分片的副本数量
其它具体参数意义参考官方文档
4.2修改配置文件
1、增加conf目录下的相应的配置文件
2、copy已有的一个core到新core名,并删除原数据
3、在solr.xml的最后一个core节点的后边增加新的core节点
4、重启
上面的4个步骤需要在各个shard上都执行一遍
SolrCloud multicore配置
第一种方式:
1.在home路径下创建一个集中管理的配置文件夹 如:solr_home/conf
2.将每个core的配置文件拷贝到该文件中,并分别命名。
3.直接在solr.xml中指定core的配置文件。
如下是配置 customer与 taskt 两个core时,将customer与core的schema.xml和solrconfig.xml拷贝至home路径下conf文件中,并且进行区别开,如修改为schema.customer.xml,solrconfig.customer.xml和schema.task.xml,solrconfig.customer.xml。
然后执行如下命令上传该配置文件:
java -classpath .:/data/web/resin_solr/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 10.11.17.164:2181,10.11.17.165:2181,10.4.16.169:2181 -confdir /data/web/solr/home/multicore/conf -confname centralConf
并且在solr.xml中进行如下配置:
<core numShards="1" name="customer" instanceDir="customer" shard="shard1" collection="customer" schema="schema.customer.xml" config="solrconfig.xml" />
<core numShards="1" name="task" instanceDir="task" shard="shard1" collection="task" schema="schema.task.xml" config="solrconfig.xml" />
最后在resin的java启动参数中,添加如下参数:-Dbootstrap_confdir=/data/web/solr/home/multicore/conf -Dcollection.configName=centralConf
第二种方式:
保留solr3.x配置文件的位置,为每个core所属的collection单独上传配置文件,并将该collection与配置文件关联。
转自:http://www.cnblogs.com/zhengtong/articles/3498249
相关问答
更多-
怎么写简介[2021-11-28]
-
有谁可以提供公司简介范例?[2021-12-10]
企 业 简 介 ##服装发展有限公司坐落于著名侨乡“中国休闲服装名城”-石狮,由香港##(集团)公司投资创建于1991年。是一家以女裤为主导、时尚女装系列为配套,集设计、开发、生产、销售于一体的服饰公司。经过多年潜心经营,被誉为-中国女裤专家。2004年,“中国名牌”和“国家免检产品”荣誉称号的获得,使##品牌插上了腾飞的双翅,迈入中国顶级品牌的行列。 进入中国市场十多年来,##产品覆盖了国内近三十个省市、自治区,设立了数百家##品牌专卖店、店中店、商场专柜及多家分公司、代理机构;产品远销欧美、中东、港 ... -
java框架技术简介[2023-11-14]
重点推荐spring框架,非常实用。 基本上把所有事情都做了,只剩下业务逻辑留给你自己实现。 -
求“Linux”的简介和教程[2023-07-06]
楼主 要学习LINUX的话 建议 找本 鸟哥的私房菜 相当不错 -
MATLAB软件简介?特点?优点?有哪些?[2022-09-03]
MATLAB软件是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 MATLAB的特点是可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的优势主要有四个方面: 1. 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来; ... -
老人与海 简介 主要人物?帮个忙!!!谢谢啦[2024-01-07]
故事讲的是:一位老渔夫(桑提亚哥)在海上捕鱼,都过了84天,他还是没有捕到一条鱼,大家都说他运气不好,等到了第85天,他决定去渔夫们从来都没去过的深海去打鱼,来说明自己的能力。在海上,老人发现了一条很大的马林鱼,它克服了重重困难,终于在第三天早晨,把鱼叉刺进了马林鱼的心脏。在返回的途中,老人与到了鲨鱼的五次袭击,他用鱼叉、船桨和刀子勇敢反击。当他驾驶小船回到港口时,马林鱼只剩下一幅巨大的白骨架…… -
公司简介 英文怎么说[2022-03-24]
公司简介 英文:company profile 发音:英 [ˈkʌmpəni ˈprəufail] 美 [ˈkʌmpəni ˈproˌfaɪl] company 英 [ˈkʌmpəni] 美 [ˈkʌmpəni] n.公司,商号; 作伴,伴侣,客人; 连队,中队; (社交)集会,聚会 profile 英 [ˈprəʊfaɪl] 美 [ˈproʊfaɪl] n.侧面,半面; 外形,轮廓; [航]翼型; 人物简介 vt.描…的轮廓; 给…画侧面图; 为(某人)写传略; [机]铣出…的轮廓 扩展资料 例句: 1、 ... -
Erlang热代码升级在两种情况下很有用: 当您拥有单个关键节点时,无法停止。 当您在交换机或路由器上运行Erlang时,情况就是这样,这对您的基础架构或在无人机上升级软件时至关重要,同时它仍在飞行 。 当你真的想保留运行节点的状态(并做一些改动)。 与处理复杂的升级相比,以这种方式设计系统通常更容易,您不需要这样做。 最好避免热代码升级,因为它很难,但有时它是必要的。 在那些时候,您将努力编写和测试升级。 而且你会很高兴,它可以完成! 在您的情况下,您有一个没有状态的节点集群,因此最简单的升级方法是从集群 ...