根据语言对字段内容进行不同的标记化-ApacheSolr
我在ApacheSolr中有一个名为“content”的字段,该字段目前被索引/标记为英语字段,这并不总是正确的,有时它有日语 是否根据语言对该字段进行不同的处理?也许有一个根据语言对字段内容进行不同的标记化-ApacheSolr,solr,Solr,我在ApacheSolr中有一个名为“content”的字段,该字段目前被索引/标记为英语字段,这并不总是正确的,有时它有日语 是否根据语言对该字段进行不同的处理?也许有一个fq=“language:japanese(伪代码)或类似的东西 允许在单个字段上处理多种语言的最佳方式是什么 我们目前有第二个字段,其内容与设置为日语的内容相同,但我们确实希望对该字段进行处理。请查看Solr功能。它支持根据检测到的语言和其他高级参数自动重命名/映射字段 在您的情况下,一个想法是根据在content中检测到
fq=“language:japanese
(伪代码)或类似的东西
允许在单个字段上处理多种语言的最佳方式是什么
我们目前有第二个字段,其内容与设置为日语的内容相同,但我们确实希望对该字段进行处理。请查看Solr功能。它支持根据检测到的语言和其他高级参数自动重命名/映射字段
在您的情况下,一个想法是根据在content
中检测到的语言将content
映射到content\u en
和content\u ja
。以下是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\u en
和content\u ja
,并确保它们绑定到相应的字段类型以进行索引。如何检测内容中的特定语言?例如,这是怎么做的?这是一种使用Tika或LangDetect实现的方法(示例中使用了Tika)。编辑solrconfig.xml以定义可以放置处理器定义的位置。然后编辑update requestHandler以声明使用过程或链。