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
Solr多语听写_Solr_Multilingual - Fatal编程技术网

Solr多语听写

Solr多语听写,solr,multilingual,Solr,Multilingual,我正在使用Solr为.pdf或.docx等文档编制索引。这些文件是法语或英语的,我想对两种语言都使用密语 例如,如果我搜索“chevaux”,我想找到“cheval”(法语),如果我搜索“raise”,我想找到“raise”(英语)。 有没有一种方法可以在不创建2个核心(一个用英语,一个用法语)的情况下实现这一点?有两个字段,一个是法语字段定义,另一个是英语字段定义。然后使用该功能将内容提交到正确的字段 搜索时,查询具有正确用户语言的字段,或者如果您不知道,则同时搜索这两个字段,或者使用语言检测

我正在使用Solr为.pdf或.docx等文档编制索引。这些文件是法语或英语的,我想对两种语言都使用密语

例如,如果我搜索“chevaux”,我想找到“cheval”(法语),如果我搜索“raise”,我想找到“raise”(英语)。
有没有一种方法可以在不创建2个核心(一个用英语,一个用法语)的情况下实现这一点?

有两个字段,一个是法语字段定义,另一个是英语字段定义。然后使用该功能将内容提交到正确的字段

搜索时,查询具有正确用户语言的字段,或者如果您不知道,则同时搜索这两个字段,或者使用语言检测来尝试更好的猜测

您也可以将相同的内容索引到这两个字段中,但我最初的猜测是,这会给您带来奇怪的结果,有人输入一个法语单词,但由于英语的处理规则,如果您只索引到正确的字段,您将不会遇到这种情况

通过启用
langid.map
,您可以告诉Solr将内容索引到名为
fieldname\u langcode
的字段中(其中fieldname从
langid.fl
中提取)

langid.map
:启用字段名映射。如果为true,Solr将映射
langid.fl
中列出的所有字段的字段名


如果您想更改默认的
fieldname\u langcode
命名,您可以使用
langid.map.replace
langid.map.pattern
,但我暂时不去管它们。

是否可以在查询中使用语言检测?我不知道,所以您可能必须将其添加到应用程序中。搜索这两个字段是通常的方法(短查询会限制您对检测语言值的信任),目前在solrconfig I中有一个语言检测器。在schema.xml中,我有两个字段类型(text_en和text_fr)。如何设置我希望内容中的英文文档和内容中的法文文档中的内容?启用
langid.map
-您可以在答案中给出的链接上看到所有参数的列表。好的,谢谢,这是工作。所以对于查询,我应该这样写:
http://localhost:8983/solr/langue/select?q=content_fr:cheval%20OR%20content_en:cheval