最新版本solr1.4+IKAnalyzer3.2.3的集成方法(希望对新手有所帮助)
也是最近几天接触的搜索引擎相关开源框架,一开始是lucene,这两天看了看solr,下了一个最新版本,配置了下,遇到一些问题。解决了一些,还有一些没有解决,这里将我的一些已经解决的问题,分享给大家。
①下载solr1.4 http://apache.freelamp.com/lucene/solr/ (注:这里有及时solr的最新版本)
②下载IKAnalyzer3.2.3Stable http://code.google.com/p/ik-analyzer/downloads/list (注:这里有IKAnalyzer及时的最新版本,也可附件直接下载)
③配置参考:http://lianj-lee.iteye.com/category/71985?show_full=true 注:(我是也是按照lianj-lee所示方法配置的,因为版本的问题,有些不一样,新手也可能遇到同样的总量,分享出来,希望能给大家一点帮助。
)
④ 与lianj-lee不同之处:
package tan.solr14.ikAnalyzer323;
import java.io.Reader;
import org.apache.lucene.analysis.Tokenizer;
import org.apache.solr.analysis.BaseTokenizerFactory;
import org.wltea.analyzer.lucene.IKAnalyzer;
public class ChineseTokenizerFactory extends BaseTokenizerFactory {
public Tokenizer create(Reader input) {
return (Tokenizer) new IKAnalyzer().tokenStream("text", input);
}
}
从代码就可以看得出来真的很方便!将它打包放入solr.war中同时还有IK的jar包。如果你不想打包,请去附件下载已经打好的包。或者直接放IK的jar包与所打的包放入apache-tomcat-6.0.26\webapps\solr\WEB-INF\lib下
⑤配置文件也与lianj-lee基本相同:
<fieldType name="text" positionIncrementGap="100">
<analyzer type="index">
<tokenizer />
<filter ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" />
<filter />
<filter protected="protwords.txt" />
<filter />
</analyzer>
<analyzer type="query">
<tokenizer />
<filter synonyms="synonyms.txt" ignoreCase="true" expand="true" />
<filter ignoreCase="true" words="stopwords.txt" />
<filter generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1" />
<filter />
<filter protected="protwords.txt" />
<filter />
</analyzer>
</fieldType>
⑥如果在启动tomcat没有报错的情况下,可以去solr的admin那里尝试看看该分词器的效果,效果如下图:
http://dl.iteye.com/upload/picture/pic/63745/49a87fa6-d69a-302e-be36-f0261b5de1af.bmp
严重: Could not start SOLR. Check solr/home propertyorg.apache.solr.common.SolrException: Unknown fieldtype 'text' specified ond features at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:4 at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:95) at org.apache.solr.core.SolrCore.<init>(SolrCore.java:520) at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreCoer.java:137) at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFiltva:83) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplinFilterConfig.java:275) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(AptionFilterConfig.java:397) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicatlterConfig.java:108) at org.apache.catalina.core.StandardContext.filterStart(StandardConjava:3709) at org.apache.catalina.core.StandardContext.start(StandardContext.j363) at org.apache.catalina.core.ContainerBase.addChildInternal(Containe.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.ja1) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfva:627) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConava:553) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.jav) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:114 at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig:311) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifeSupport.java:117) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java: at org.apache.catalina.core.StandardHost.start(StandardHost.java:71 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java: at org.apache.catalina.core.StandardEngine.start(StandardEngine.jav) at org.apache.catalina.core.StandardService.start(StandardService.j16) at org.apache.catalina.core.StandardServer.start(StandardServer.jav) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorjava:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodsorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)2010-11-4 11:32:36 org.apache.solr.common.SolrException log严重: org.apache.solr.common.SolrException: Unknown fieldtype 'text' specifn field features at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:4 at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:95) at org.apache.solr.core.SolrCore.<init>(SolrCore.java:520) at org.apache.solr.core.CoreContainer$Initializer.initialize(CoreCoer.java:137) at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFiltva:83) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplinFilterConfig.java:275) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(AptionFilterConfig.java:397) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicatlterConfig.java:108) at org.apache.catalina.core.StandardContext.filterStart(StandardConjava:3709) at org.apache.catalina.core.StandardContext.start(StandardContext.j363) at org.apache.catalina.core.ContainerBase.addChildInternal(Containe.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.ja1) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfva:627) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConava:553) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.jav) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:114 at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig:311) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifeSupport.java:117) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java: at org.apache.catalina.core.StandardHost.start(StandardHost.java:71 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java: at org.apache.catalina.core.StandardEngine.start(StandardEngine.jav) at org.apache.catalina.core.StandardService.start(StandardService.j16) at org.apache.catalina.core.StandardServer.start(StandardServer.jav) at org.apache.catalina.startup.Catalina.start(Catalina.java:578) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorjava:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodsorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 4 楼 85600367 2010-11-16 用不成嘛 楼主试了没