Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 基于solr的多语言需求优化索引策略_Search_Solr_Lucene_Wcs - Fatal编程技术网

Search 基于solr的多语言需求优化索引策略

Search 基于solr的多语言需求优化索引策略,search,solr,lucene,wcs,Search,Solr,Lucene,Wcs,我们使用IBMWCSV7来满足基于电子商务的需求之一,其中嵌入了ApacheSolr以实现基于搜索的实现 根据一项新的要求,一个网站将有多种语言支持,法国以外版本的网站可以支持英语、法语等(en_FR、FR_FR等)。为了使用此界面配置solr,使用单个solr核心的最佳索引策略应该是什么 我有一些想法1)在schema.xml中使用多个字段来表示多种语言,2)在不同的语言中使用不同的solr核心 但这些方法似乎不是最适合当前需求的方法,因为电子商务网站将有18种语言支持。为每种语言使用不同的字

我们使用IBMWCSV7来满足基于电子商务的需求之一,其中嵌入了ApacheSolr以实现基于搜索的实现

根据一项新的要求,一个网站将有多种语言支持,法国以外版本的网站可以支持英语、法语等(en_FR、FR_FR等)。为了使用此界面配置solr,使用单个solr核心的最佳索引策略应该是什么

我有一些想法1)在schema.xml中使用多个字段来表示多种语言,2)在不同的语言中使用不同的solr核心

但这些方法似乎不是最适合当前需求的方法,因为电子商务网站将有18种语言支持。为每种语言使用不同的字段将非常复杂,而且使用不同的solr代码也不是一个好方法,因为我们需要在所有solr核心中应用配置更改(如果根据任何要求发生)

是否有其他方法,或者是否有任何方法可以将localeId与索引数据关联,并根据检测到的语言处理搜索结果

在此主题上的任何帮助都将不胜感激

感谢和问候


Jitendriya Dash

这篇帖子已经得到了原创海报和其他人的回复——只是总结一下作为一个答案:

建议的解决方案是为每个区域设置/语言创建一个索引核心。如果目录或内容(如产品名称、说明、关键字)不同,并且业务部门希望为每个区域设置分别管理,则这一点尤为重要。这为Solr执行特定于该语言环境的词干分析和标记化(如果适用)提供了额外的好处

我曾经是解决方案的一部分,在解决方案中,这种方法比在同一个核心中为每种语言/语言维护多个字段或文档更受欢迎。我使用过的索引核的数量最多是6个


还必须记住,添加索引核心将需要更新支持流程(产品信息管理系统更新到目录加载到工作区管理到阶段传播到重新索引到缓存失效)。

一个澄清:您是否打算本地化存储在索引中的数据,或者只支持以不同语言存储数据?换句话说,您是否打算对每个文档的数据进行18次索引,每种语言一次?或者只是一次,不管它是用什么语言,数据已经用不同的语言存在了。我们需要为相应的语言编制索引。然而,似乎我们采用了每种语言一个核心的方法,我们将为主目录支持的每种语言创建不同的solr核心。使用这种方法,需要在每个核心中复制配置更改,但好的方面是,我们不需要考虑特定于语言的设置(如stopwords、protwords等,可以针对不同的语言单独处理)。是的,在这种情况下,我认为您已经有了正确的想法。在同一个字段中存储多种语言会导致问题,您似乎已经考虑过了(标记化、停止字等)。您陈述的两种方法中的任何一种都可以很好地工作。另一种可能性是,您还可以为每种语言创建单独的文档,将适当的分析器传递到addDocument调用中,并添加一个指定文档语言的字段。不过你对我来说似乎是对的。