您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 利用SOLR搭建企业搜索平台
1/32利用SOLR搭建企业搜索平台目录利用SOLR搭建企业搜索平台........................................................................................................1运行solr....................................................................................................................................2中文分词...................................................................................................................................3配置文件...................................................................................................................................6MultiCore..................................................................................................................................8solrj..........................................................................................................................................10solr查询参数说明..................................................................................................................15solr使用问题集......................................................................................................................16solr实现去掉重复的搜索结果.............................................................................................19solr的查询语法......................................................................................................................24数据库数据导入到solr..........................................................................................................27中文分词之IK.........................................................................................................................302/32运行solr在网络上找了很多的关于solr的资料,发现非常的不全面,即使就是官方的wiki,也是如此!基于现阶段正在研究的solr应用,陆续的会分享我的一些经验!今天要说的是:怎么跑起来!1》首先下载好solr,我用的是solr1.3,下载地址:windows版本版本》准备运行容器,我用的是tomcat6.0.20.如果是玩的话,也可以不用准备专门的容易,你只需解压好solr的下载包,找到example文件夹,然后运行start.jar。具体指令:java-jarstart.jar做应用的时候,不建议采用该方式。该方式内部包含了jetty!3》有关tomcat的使用,不是本文的重点,如果你有问题,请参见tomcat的使用。解压好tomcat,将solr包下面的dist文件夹中的apache-solr-1.3.0.war拷贝到tomcat的webapps,并且改名为solr.war。4》新建一个solr-tomcat文件夹,我是把这个文件夹建立在C盘根目录,你可以采用同样方式,也可以不这样,放哪由你决定。建立好该文件夹以后,在把它下面在建立一个solr文件夹,把solr包里面的examplesolr文件夹下面的所有文件放入到solr里面。5》最后一步配置solr.home,可以有三种方式。1)基于当前路径的方式这种情况需要在c:solr-tomcat目录下去启动tomcat,Solr查找./solr,因此在启动时候需要切换到c:solr-tomcat2)基于环境变量windows在环境变量中建立solr.home,值为c:solr-tomcatlinux在当前用户的环境变量中(.bash_profile)或在catalina.sh中添加如下环境变量exportJAVA_OPTS=$JAVA_OPTS-Dsolr.solr.home=/opt/solr-tomcat/solr3)基于JNDI在tomcat的conf文件夹建立Catalina文件夹,然后在Catalina文件夹中在建立localhost文件夹,在该文件夹下面建立solr.xml,其中内容:Xml代码3/32123ContextdocBase=c:tomcatwebappssolr.wardebug=0crossContext=trueEnvironmentname=solr/hometype=java.lang.Stringvalue=c:/solr-tomcat/solroverride=true//Context问题描述:个人发现的一个问题,就是如果配置好JNDI的话,然后在tomcat的bin文件夹下面启动tomcat的话,会在tomcat的bin下面建立solr文件夹,这个文件夹中主要存放的索引文件。本来这些东西应该放入c:solr-tomcatsolr。如果你不想出现这种情况的话,请使用基于当前路径的方式。6》打开浏览器,请看看能否访问该服务。如果能够访问,恭喜您跑起来了。中文分词这篇文章,主要说的是怎么在solr中加入中文分词,参考了一些文章,但是还是花了不少时间才搞出的。可能是大侠们太牛了,所以很多细节东西都没有写出来!但是要指出的是很多文章都是抄来抄去的!入正题:在上面的一个文章中,已经使solr跑起来了,在上面的基础上,加入中文分词。我用的是paoding分词器!1》请下好paoding分词器,下载地址:,在这里要非常感谢paoding作者:qieqie在使用paoding的时候要注意:paoding的dic位置,也就是字典的位置,有两种办法解决:1)在系统环境变量中加入PAODING_DIC_HOME这个变量,值为paoding压缩包下面的dic的解压位置。2)paoding-analysis.jar里面有个paoding-dic-home.properties文件,指定dic也可,但是要重新编译这个jar包,我采用的后面一种办法,只要每次固定好dic位置,部署还不是很不方便,设置环境变量我比较反感2》建立文件Java代码双击代码全选4/321234567891011121314151617181920212223242526272829303132333435363738394041424344packagecom.yeedoo.slor.tokenizer;importjava.io.Reader;importjava.util.Map;importnet.paoding.analysis.analyzer.PaodingTokenizer;importnet.paoding.analysis.analyzer.TokenCollector;importnet.paoding.analysis.analyzer.impl.MaxWordLengthTokenCollector;importnet.paoding.analysis.analyzer.impl.MostWordsTokenCollector;importnet.paoding.analysis.knife.PaodingMaker;importorg.apache.lucene.analysis.TokenStream;importorg.apache.solr.analysis.BaseTokenizerFactory;publicclassChineseTokenizerFactoryextendsBaseTokenizerFactory{/***最多切分默认模式*/publicstaticfinalStringMOST_WORDS_MODE=most-words;/***按最大切分*/publicstaticfinalStringMAX_WORD_LENGTH_MODE=max-word-length;privateStringmode=null;publicvoidsetMode(Stringmode){if(mode==null||MOST_WORDS_MODE.equalsIgnoreCase(mode)||default.equalsIgnoreCase(mode)){this.mode=MOST_WORDS_MODE;}elseif(MAX_WORD_LENGTH_MODE.equalsIgnoreCase(mode)){this.mode=MAX_WORD_LENGTH_MODE;}else{thrownewIllegalArgumentException(不合法的分析器Mode参数设置:+mode);}}@Overridepublicvoidinit(MapString,Stringargs){super.init(args);setMode(args.get(mode).toString());}5/3245464748495051525354555657publicTokenStreamcreate(Readerinput){returnnewPaodingTokenizer(input,PaodingMaker.make(),createTokenCollector());}privateTokenCollectorcreateTokenCollector(){if(MOST_WORDS_MODE.equals(mode))returnnewMostWordsTokenCollector();if(MAX_WORD_LENGTH_MODE.equals(mode))returnnewMaxWordLengthTokenCollector();thrownewError(neverhappened);}}将该文件
本文标题:利用SOLR搭建企业搜索平台
链接地址:https://www.777doc.com/doc-6152204 .html