tomcat + solr + IK 全过程
程序员文章站
2022-05-17 18:53:36
...
solr初触,在用jetty跑通以后,开始在tomcat下进行配置。
首先,下载最新版的solr ,http://apache.dataguru.cn/lucene/solr/4.2.1/
1:将dist目录下的solr-4.2.0.war 复制到tomcat 下的webapps根目录,重命名为solr.war,运行tomcat,solr.war被解压。
2:在tomcat根目录(可以是任何目录)新建文件目录solr/home,将solr-4.1.0\example下的solr复制到solr/home目录下,如果要配置多核,只用复制solr-4.1.0\example\multicore下的core0、core1、solr.xml复制到solr/home
3: 找到 webapps\solr\WEB-INF下的web.xml,配置solr/home信息
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>D:/apache-tomcat-7.0.34/solr/home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
到这里,就可以测试一下了.运行tomcat,访问http://127.0.0.1:端口号/solr/admin
如果看到solr的主页面,并且没有错误信息,说明已经配置成功。
如此,我们来进行更细致的配置
4:上面有提到多核,配置如下。
复制solr-4.1.0\example\multicore下的core0、core1、solr.xml复制到solr/home,找开solr.xml,找到cores标签,默认的配置是core 0、core1.可根据需求进行修改,我有如下两个业务,需要两个不同的core,如下配置。
<cores adminPath="/admin/cores" host="${host:}" hostPort="${jetty.port:}">
<core name="EMAIL" instanceDir="email" />
<core name="IM" instanceDir="im" />
</cores>
其中,name就是我们访问时的名称,instanceDir为solr/home下的core0、core1,这里作相应的修改
重启tomcat,访问http://127.0.0.1:8089/solr/#/EMAIL
http://127.0.0.1:8089/solr/#/IM 进行测试[/color]
其中,solr/home/EMAIL与IM下,最重要的文件就是schama.xml,所以的索引字段都在这里面进行配置,主要有两个标签<field> 与 <fieldType>
<schema name="im core im" version="1.1">
<types>
<fieldtype name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="text_cn" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
</types>
<fields>
<field name="id" type="int" indexed="true" stored="true" multiValued="false"/>
<field name="name" type="text_cn" indexed="true" stored="true" multiValued="true"/>
<field name="city" type="text_cn" indexed="true" stored="true" multiValued="true"/>
</fields>
其中,库名要与当前的库名匹配<schema name="im core im" version="1.1">, indexed是否建索引,stored是否保存,multiValued是否多个值,根据具体的需求进行配置。
5:上面有个name="text_cn"的类型,这个就是接下来要进行的分词。
我选择了IK分词器。在配置的过程中,遇到一个问题:
java.lang.VerifyError: class org.wltea.analyzer.lucene.IKAnalyzer overrides final method tokenStream.(Ljava/lang/String;Ljava/io/Reader;)Lorg/apache/lucene/analysis/TokenStream;
原因是我最开始用的是IK3.2.8 与 当前solr的版本冲突。重新下载 2012 ff 后问题得到解决。下载地址为:http://code.google.com/p/ik-analyzer/downloads/detail?name=IK%20Analyzer%202012FF_hf1.zip&can=2&q=
将IKAnalyzer2012FF_u1.jar拷贝到D:\apache-tomcat-7.0.34\webapps\solr\WEB-INF\lib目录下;
IKAnalyzer.cfg.xml(分词器扩展配置文件)与stopword.dic(扩展的stopword词典,3.2以上版本提供)文件放置在代码根目录(对于web项目,通常是WEB-INF/classes目录,同hibernate、log4j等配置文件相同)下即可.
重启tomcat,进入http://127.0.0.1:8089/solr/#/EMAIL/analysis (IM同)输入如:“我是美女屌丝程序员”进行测试。
[/size][/color]
首先,下载最新版的solr ,http://apache.dataguru.cn/lucene/solr/4.2.1/
1:将dist目录下的solr-4.2.0.war 复制到tomcat 下的webapps根目录,重命名为solr.war,运行tomcat,solr.war被解压。
2:在tomcat根目录(可以是任何目录)新建文件目录solr/home,将solr-4.1.0\example下的solr复制到solr/home目录下,如果要配置多核,只用复制solr-4.1.0\example\multicore下的core0、core1、solr.xml复制到solr/home
3: 找到 webapps\solr\WEB-INF下的web.xml,配置solr/home信息
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>D:/apache-tomcat-7.0.34/solr/home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
到这里,就可以测试一下了.运行tomcat,访问http://127.0.0.1:端口号/solr/admin
如果看到solr的主页面,并且没有错误信息,说明已经配置成功。
如此,我们来进行更细致的配置
4:上面有提到多核,配置如下。
复制solr-4.1.0\example\multicore下的core0、core1、solr.xml复制到solr/home,找开solr.xml,找到cores标签,默认的配置是core 0、core1.可根据需求进行修改,我有如下两个业务,需要两个不同的core,如下配置。
<cores adminPath="/admin/cores" host="${host:}" hostPort="${jetty.port:}">
<core name="EMAIL" instanceDir="email" />
<core name="IM" instanceDir="im" />
</cores>
其中,name就是我们访问时的名称,instanceDir为solr/home下的core0、core1,这里作相应的修改
重启tomcat,访问http://127.0.0.1:8089/solr/#/EMAIL
http://127.0.0.1:8089/solr/#/IM 进行测试[/color]
其中,solr/home/EMAIL与IM下,最重要的文件就是schama.xml,所以的索引字段都在这里面进行配置,主要有两个标签<field> 与 <fieldType>
<schema name="im core im" version="1.1">
<types>
<fieldtype name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="text_cn" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
</types>
<fields>
<field name="id" type="int" indexed="true" stored="true" multiValued="false"/>
<field name="name" type="text_cn" indexed="true" stored="true" multiValued="true"/>
<field name="city" type="text_cn" indexed="true" stored="true" multiValued="true"/>
</fields>
其中,库名要与当前的库名匹配<schema name="im core im" version="1.1">, indexed是否建索引,stored是否保存,multiValued是否多个值,根据具体的需求进行配置。
5:上面有个name="text_cn"的类型,这个就是接下来要进行的分词。
我选择了IK分词器。在配置的过程中,遇到一个问题:
java.lang.VerifyError: class org.wltea.analyzer.lucene.IKAnalyzer overrides final method tokenStream.(Ljava/lang/String;Ljava/io/Reader;)Lorg/apache/lucene/analysis/TokenStream;
原因是我最开始用的是IK3.2.8 与 当前solr的版本冲突。重新下载 2012 ff 后问题得到解决。下载地址为:http://code.google.com/p/ik-analyzer/downloads/detail?name=IK%20Analyzer%202012FF_hf1.zip&can=2&q=
将IKAnalyzer2012FF_u1.jar拷贝到D:\apache-tomcat-7.0.34\webapps\solr\WEB-INF\lib目录下;
IKAnalyzer.cfg.xml(分词器扩展配置文件)与stopword.dic(扩展的stopword词典,3.2以上版本提供)文件放置在代码根目录(对于web项目,通常是WEB-INF/classes目录,同hibernate、log4j等配置文件相同)下即可.
重启tomcat,进入http://127.0.0.1:8089/solr/#/EMAIL/analysis (IM同)输入如:“我是美女屌丝程序员”进行测试。
[/size][/color]
上一篇: 设计模式(五)--单例模式
下一篇: 采用单例设计模式的Runtime类
推荐阅读
-
Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第九集-补充-之安装jdk】
-
Solr学习笔记---部署Solr到Tomcat上,可视化界面的介绍和使用,Solr的基本内容介绍,SolrJ的使用
-
Solr学习(三) 单独ZooKeeper(外部)实例 + SolrCloud(tomcat)实例
-
Solr-8.1.1 + IK-analyzer-8.1.0教程
-
Centos安装Solr7.4+IK7.4
-
solr配置中文分词器 IK分词器
-
linux上搭建solr的操作方法(用tomcat部署)
-
ik-analyzer-solr8.3.1 / solr使用text_ik插件 查询字段不分词
-
搜索引擎solr使用IK-Analyzer分词器
-
Windows环境solr部署在tomcat+连接sql数据库的实验讲解