solr 7.0 tomcat 安装配置 + 中文分词
2017-12-08 00:16
609 查看
项目背景:
Solr 搜索引擎与db的区别
实践
单机 部署到tomcat (手动) tomcat 要使用8才可以
1.进不去:404
2.查看log
解决办法
添加core:
1.在solr_home 下新建文件夹
复制 server/solr/ 默认下面的conf 到新建的core下面 。在 conf 同级添加core.properties 里面name=新建的core名字。如 name=demo_engine
索引位置的说明
错误1
中文分词
这里选用ik 6.5,正常使用没问题,可以自己开发分词器
说明:
在schema中添加ik的 fieldType 如
这个fieldType 可以自己设置,指定tokenizer ,添加filter等,达到自己想要的效果
安装好了之后重启,
测试:
(1)选择 demo_engine (自定义的core)
(2)analysis,用来测试 fieldType的效果。使用solr的神器
这个是 useSmart的效果
拼音分词
自己实现了拼音转化,在java端,存入字段,用ngram 可以实现 前缀/部分匹配的效果
Solo 7 与solr4的一些差异
一些基础字段,如int date 都变为pint pdate,之前 的schema 需要注意加一下fieldType
更新数据,数据库 ,json 都可以,百度之。这里 提供我的测试schema 和测试数据,用json update,需要在solrConfig中开启
需要吧下面的 功能注释去掉
修改了schema 和 solrConfig的配置文件需要重启solr
测试数据的更新;
post 方式,content-Type:text/json 然后body中添加 测试数据的文件就可以,这里推荐使用chrome 的 postman插件 比较好用
Url:
机器名+端口+接口+core的名字+。。。。
Solr 搜索引擎与db的区别
solr:相关度排序,而不是某列 某些列 实现:倒排索引 MapReduce的诞生是为了构建web规模的倒排索引 多核:数据分区,多租客应用
实践
单机 部署到tomcat (手动) tomcat 要使用8才可以
步骤: 1. 解压solr ,把 solr\solr-6.3.0\server\solr-webapp下的 webapp 文件夹拷贝到tomcat 的webapps下,重命名为solr,也可以是其他名字(我定义的是lsearch); ( 注意,此处有的教程错误的将solr-webapp文件夹进行拷贝,这会导致solr启动不了) 2. 拷贝solr-6.3.0\server\lib\ext 下的jar包到 tomcat\webapps\ 下solr 项目的WEB-INF\lib下;拷贝solr-6.3.0\dist 下solr-dataimporthandler jar 包,solr-dataimporthandler-extras-6.3.0.jar 包 到 tomcat\webapps\ 下solr 项目的WEB-INF\lib下 3. 拷贝solr-6.3.0\server 下的solr文件夹到E盘或其它非中文目录下,重命名为solrhome; 4. 修改tomcat\webapps\ solr(solr的项目名)\WEB-INF\web.xml, 找到如下代码,去掉注释,/put/your/solr/home/here 改为你自己的solrhome的路径, 如:E:/solr-home <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>E:/solr-home</env-entry-value> <env-entry-type>Java.lang.String</env-entry-type> </env-entry> 5. 拷贝solr-6.3.0\server\resources下的log4j.properties到tomcat\webapps\solr\WEB-INF\classes,如果WEB-INF下没有classes文件那么就创建一个classes文件夹。 6.访问:http://localhost:8888/lsearch/index.html 在tomcat的conf下的server.xml 中的8080 换成自己想要的端口号 lsearch为自定义的名字
1.进不去:404
web.xml 中的 <security-constraint> 注掉
2.查看log
严重: Exception starting filter SolrRequestFilter java.lang.NoClassDefFoundError: com/codahale/metrics/MetricSet
解决办法
请把solr-6.4.1/server/lib下的metrics-core-3.1.2.jar,metrics-ganglia-3.1.2.jar,metrics-graphite-3.1.2.jar,metrics-jetty9-3.1.2.jar,metrics-jvm-3.1.2.jar这几个jar包放到tomcat下的solr项目的WEB-INF/lib目录下。
添加core:
1.在solr_home 下新建文件夹
复制 server/solr/ 默认下面的conf 到新建的core下面 。在 conf 同级添加core.properties 里面name=新建的core名字。如 name=demo_engine
索引位置的说明
core.properties 中 name 写core的名字 dataDir=/home/q/qsearch-index/ugc_engine dataDir指定 索引放置的位置,如果不指定,索引会在同级目录创建data目录 如 name=demo_engine dataDir=/Users/ly/Documents/code/demo-project/solr-index/demo_engine 自己创立的新文件夹+core名字
错误1
错误1:java.io.FileNotFoundException: /solr.log 解决: webapp/classes/lo4j中的 solr.dir 改为本地路径。如 solr.log=/Users/ly/Documents/code/demo-project/tomcat-solr/logs/
中文分词
这里选用ik 6.5,正常使用没问题,可以自己开发分词器
下载链接:http://files.cnblogs.com/files/wander1129/ikanalyzer-solr6.5.zip
说明:
ext.dic为扩展字典 stopword.dic为停止词字典 IKAnalyzer.cfg.xml为配置文件 solr-analyzer-ik-5.1.0.jar ik-analyzer-solr5-5.x.jar为分词jar包。 1:将IK分词器 JAR 包拷贝到lsearch/webapp/WEB-INF/lib/ 2:将词典 配置文件拷贝到 solr7/server/solr_webapp/webapp/WEB-INF/ 3: 更改test_core\conf\managed-schema配置文件
在schema中添加ik的 fieldType 如
<fieldType name="text_ik" class="solr.TextField"> <analyzer type="index"> <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="true"/> </analyzer> <analyzer type="query"> <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="true"/> </analyzer> </fieldType>
这个fieldType 可以自己设置,指定tokenizer ,添加filter等,达到自己想要的效果
安装好了之后重启,
测试:
(1)选择 demo_engine (自定义的core)
(2)analysis,用来测试 fieldType的效果。使用solr的神器
这个是 useSmart的效果
拼音分词
自己实现了拼音转化,在java端,存入字段,用ngram 可以实现 前缀/部分匹配的效果
Solo 7 与solr4的一些差异
一些基础字段,如int date 都变为pint pdate,之前 的schema 需要注意加一下fieldType
更新数据,数据库 ,json 都可以,百度之。这里 提供我的测试schema 和测试数据,用json update,需要在solrConfig中开启
需要吧下面的 功能注释去掉
<requestHandler name="/update/json" class="solr.UpdateRequestHandler"> <lst name="invariants"> <str name="stream.contentType">application/json</str> </lst> </requestHandler>
修改了schema 和 solrConfig的配置文件需要重启solr
测试数据的更新;
post 方式,content-Type:text/json 然后body中添加 测试数据的文件就可以,这里推荐使用chrome 的 postman插件 比较好用
Url:
http://localhost:8888/lsearch/demo_engine/update/json?commit=true
机器名+端口+接口+core的名字+。。。。
相关文章推荐
- solr7.2单机版安装及中文分词配置
- solr4.7安装配置,solrcloud安装配置,中文分词使用步骤
- solr3.5整合tomcat并配置中文分词
- Lucence的solr的安装和Tomcat的整合(带中文分词)
- Windows下安装配置Solr (tomcat7.0)
- solr cloud 在集群中的配置,以及与中文分词, tomcat等等的整合(1)
- Windows下安装配置Solr (tomcat7.0)
- solr1:solr5.1.0 tomcat 安装,集成 mmseg4j 中文分词
- solr 5.5.1安装并配置中文分词IKAnalyzer
- Tomcat 7.0安装与配置
- java实战(五)------tomcat 7.0的安装配置使用运行war包
- Solr6.5配置中文分词IKAnalyzer和拼音分词pinyinAnalyzer (二)
- SolrCloud 4.3.1+Tomcat 7安装配置实践
- CentOS-7.0.中安装与配置Tomcat-7的方法--转
- Tomcat7.0/8.0 详细安装配置图解,以及UTF-8编码配置
- solr安装和配置中文分词器
- (三)solr的dataimport的配置以及中文分词
- Solr学习(二)-- 配置中文分词
- Solr6.0.0以上分词器配置[中文]