主页 > 论坛 > 安装与配置 > 多语言的Solr服务器设置

多语言的Solr服务器设置

You need to be logged in to get access to the forums. You can do so here

作者 信息

Cindy Cai

星期二, 2013年 十二月 10日 9:53:22 am

中文和英文的字的区别是,英文字的之间有空格,而中文字之间没有空格,只有一段话完了之后才有标点符号,字与字之间是没有空格的,这样的话,就会造成搜索的问题,而ezfind是按英文的搜索方式,每个字都可以搜索,而对于搜索中文的就出现问题了,解决这个问题的方法如下: 1,在Solr服务器上为中文建一个新的core文件夹. 2. 编辑solr.xml 文件, <?xml version="1.0" encoding="UTF-8" ?> <solr persistent="true" sharedLib="lib"> <cores adminPath="/admin/cores"> <core name="eab.co.uk" instanceDir="eng-example.com" /> <core name="entrepriseab.fr" instanceDir="fre-example.com" /> <core name="eab-china.com" instanceDir="chi-example.com" /> ... </cores> </solr> 3. 为新的core 设置一个 conf/solrconfig.xml , 内容例如: <dataDir>/home/ezfind/cores/example.com/data</dataDir> 4.下载apache-solr-3.6.0 并解压 5.复制 /home/ezfind/apache-solr-3.6.0/contrib/analysis-extras 到 /home/ezfind/cores/lib 命令是:cp apache-solr-3.6.0/contrib/analysis-extras/{lib,lucene-libs}/* cores/lib 6.根据http://wiki.apache.org/solr/Langu...alysis#Chinese.2C_Japanese.2C_Korean 编辑 eab-china.com/conf/schema.xml 把内容<fieldType name="text" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true"> 变成<fieldType name="text" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="false"> 这里有两个分析者, 一个是eZ Publish的检索时间,另一个是eZ Publish的搜索时间。把没个分析者的字段由<tokenizer class="solr.WhitespaceTokenizerFactory"/> 变成 <tokenizer class="solr. SmartChineseSentenceTokenizerFactory"/> <filter class="solr.SmartChineseWordTokenFilterFactory"/> 7. 用命令:sudo service solr stop sudo service solr start 重启Solr服务器 8.为每个语言定义cores 并启用ezfind.ini中的多语言, 代码是:[LanguageSearch] MultiCore=enabled LanguagesCoresMap[eng-GB]=eng-GB LanguagesCoresMap[fre-FR]=fre-FR LanguagesCoresMap[chi-CN]=chi-CN 9.为每个语言定义shards ,代码如:Shards[eng-GB]=http://localhost:8983/solr/eng-example.com Shards[fre-FR]=http://localhost:8983/solr/fre-example.com Shards[chi-CN]=http://localhost:8983/solr/chi-example.com 10.清空ini的缓存:命令是bin/php/ezcache.php --clear-tag=ini 11.为每个cores 建立重新检索,命令是: extension/ezfind/bin/php/updatesearchindexsolr.php --clean-all -s fre extension/ezfind/bin/php/updatesearchindexsolr.php --clean-all -s eng extension/ezfind/bin/php/updatesearchindexsolr.php --clean-all -s chi 12. 测试每个siteaccess是否工作 Related content