博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
solr 7.0 tomcat 安装配置 + 中文分词
阅读量:5819 次
发布时间:2019-06-18

本文共 3193 字,大约阅读时间需要 10 分钟。

title: solr 7.0 tomcat 安装配置 + 中文分词

author: Eric liu

tags: [solr,引擎,搜索] categories:

  • solr
  • 搜索

项目背景:

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
solr/home
E:/solr-home
Java.lang.String
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 中的
注掉复制代码

2.查看log

严重: Exception starting filter SolrRequestFilterjava.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_enginedataDir=/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 可以自己设置,指定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中开启

需要吧下面的 功能注释去掉

application/json
复制代码

修改了schema 和 solrConfig的配置文件需要重启solr

测试数据的更新;

post 方式,content-Type:text/json 然后body中添加 测试数据的文件就可以,这里推荐使用chrome 的 postman插件 比较好用

Url:

http://localhost:8888/lsearch/demo_engine/update/json?commit=true复制代码

机器名+端口+接口+core的名字+。。。。

转载地址:http://swzdx.baihongyu.com/

你可能感兴趣的文章
全新jmeter视频已经上架
查看>>
Windows 8下如何删除无线配置文件
查看>>
解决Windows 7中文件关联和打开方式
查看>>
oracle系列(五)高级DBA必知的Oracle的备份与恢复(全录收集)
查看>>
hp 服务器通过串口重定向功能的使用
查看>>
国外10大IT网站和博客网站
查看>>
对java语言学习的个人看法
查看>>
android第十一期 - SmoothSwitchLibrary仿IOS切换Activity动画效果
查看>>
zabbix 批量web url监控
查看>>
大容量导入和导出数据 -- 格式化文件生成
查看>>
MongoDB CookBook读书笔记之导入导出
查看>>
shell如何快速锁定所有账号
查看>>
HTML 5实现的手机摇一摇
查看>>
Linux 文件IO理解
查看>>
Ninject 2.x细说---2.绑定和作用域
查看>>
30个非常时尚的网页联系表单设计优秀示例
查看>>
使用membership(System.Web.Security)来进行角色与权限管理
查看>>
opticom 语音质量验证白皮书
查看>>
3D实时渲染中的BSP树和多边形剔除
查看>>
Frank Klemm's Dither and Noise Shaping Page: Dither and Noise Shaping In MPC/MP+
查看>>