根据语言对字段的内容进行不同的标记 - Apache Solr

时间:2014-03-06 15:19:42

标签: solr

我在Apache Solr中有一个名为“content”的字段,该字段目前正在被编入索引/标记为英语字段,这并不总是正确的,有时它有日语。

无论如何根据语言不同地处理这个字段?也许如果有fq="language:japanese(伪代码)或类似的东西?

允许在单个字段上处理多种语言的最佳方式是什么。

我们目前有第二个字段具有相同的内容设置为日语,但我们真的希望处理这个字段。

1 个答案:

答案 0 :(得分:1)

查看Solr LanguageDetection功能。它支持根据检测到的语言和其他高级参数自动重命名/映射字段。

在您的情况下,根据检测到content的语言,一个想法是将content_en映射到content_jacontent。这是solrconfig.xml中的UpdateRequestProcessor定义的一个示例:

 <processor class="org.apache.solr.update.processor.TikaLanguageIdentifierUpdateProcessorFactory">
   <bool name="langid">true</bool>
   <str name="langid.fl">content</str>  <!-- list of fields to be processed -->
   <str name="langid.langField">language</str>  <!-- where goes returned langcode -->
   <str name="langid.whitelist">en,ja</str>  <!-- what language to detect -->
   <bool name="langid.map">true</bool>  <!-- mapping langcode (add _suffix) -->
   <str name="langid.map.lcmap">en_GB:en en_US:en</str>  <!-- custom mapping -->
 </processor>

您必须更新schema.xml,以便定义content_encontent_ja,并确保它们绑定到相应的字段类型以进行索引。