我在Apache Solr中有一个名为“content”的字段,该字段目前正在被编入索引/标记为英语字段,这并不总是正确的,有时它有日语。
无论如何根据语言不同地处理这个字段?也许如果有fq="language:japanese
(伪代码)或类似的东西?
允许在单个字段上处理多种语言的最佳方式是什么。
我们目前有第二个字段具有相同的内容设置为日语,但我们真的希望处理这个字段。
答案 0 :(得分:1)
查看Solr LanguageDetection功能。它支持根据检测到的语言和其他高级参数自动重命名/映射字段。
在您的情况下,根据检测到content
的语言,一个想法是将content_en
映射到content_ja
和content
。这是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_en
和content_ja
,并确保它们绑定到相应的字段类型以进行索引。