Nutch Solr自动语言检测 - 特定于语言的字段不出现
我试图在Solr中启用语言检测,但新的特定于语言的字段没有在索引后出现。Nutch Solr自动语言检测 - 特定于语言的字段不出现
这里是我的配置迄今:
solrconfig.xml中:
<processor class="org.apache.solr.update.processor.LangDetectLanguageIdentifierUpdateProcessorFactory">
<str name="langid.fl">title</str>
<str name="langid.langField">lang_detect</str>
<str name="langid.fallback">en</str>
<bool name="langid.map">true</bool>
<str name="langid.map.lcmap">en:en, zh:zh</str>
<bool name="langid.individual">true</bool>
<str name="langid.individual.fl">title</str>
</processor>
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />
托管的schema.xml:
<field name="lang123" type="string" indexed="true" stored="true" />
<field name="title" type="text_general" indexed="true" stored="true" />
<field name="title_en" type="text_en" indexed="true" stored="true" />
<field name="title_zh" type="text_cjk" indexed="true" stored="true" />
Nutch_HOME/conf目录/ nutch- site.xml:
<property>
<name>plugin.includes</name>
<value>protocol-http|urlfilter-regex|parse-(html|tika)|index-(basic|anchor)|indexer-solr|scoring-opic|urlnormalizer-(pass|regex|basic)|language-identifier</value>
</property>
运行完全重新抓取和索引到Solr之后,这是我为一个文件输出样本:
{
"tstamp":["2017-07-18T08:44:35.470Z"],
"segment":[20170718164424],
"digest":["23c66ec3785ca1fe1e71bc636e6f6f37"],
"host":["test.com"],
"boost":[1.0],
"id":"https://test.com",
"title":["保新"],
"lang_detect":["zh"],
"metatag.keywords":["meta keywords here",
"meta keywords here"],
"url":["http://test.com"],
"content":["test test"],
"_version_":12312312
}
问题
- 为什么 '郎' 字段出现,即使我有意将语言检测字段设置为'lang_detect'?
- “title_zh”,“title_en”都不会出现在结果中。步骤/配置是否错过?
谢谢。
我注意到的一件事是,你试图在Solr和Nutch两个地方检测内容的语言,通常你使用其中一种。如果您在Nutch上使用language-identifier
插件,则识别过程仅针对Nutch,基本上在Solr方面,您将获得一种包含该语言的文档,因此您不需要使用LangDetectLanguageIdentifierUpdateProcessorFactory
处理器。
如果您希望在Solr端识别语言,您可以使用Solr处理器,因此您不需要Nutch上的language-identifier
插件,只需选择其中一个即可。
至于现场问题,language-identifier
插件没有选项来更改字段的名称(https://github.com/apache/nutch/blob/master/src/plugin/language-identifier/src/java/org/apache/nutch/analysis/lang/LanguageIndexingFilter.java#L76),因此如果您使用它,您将在索引中获得一个lang
字段。
对于第二个问题,你期望在title_en
上有什么? Nutch/Solr上的语言标识检测到文本的语言,并将该“分类”放入字段(本例中为lang_detect
)。
我明白了。那么哪个部分能够通过语言自动检测“标题”,并将其复制到各自的“title_en”,“title_zh”字段? – codeandfootball
因为我们可以在Solr输出中看到'lang_detect'字段,所以Solr上的语言检测正在工作,请尝试删除'langid.individual。*'选项并使用Solr Admin UI手动索引文档以测试,现在不确定由于您在'langid.fl'中设置了相同的字段,因此个别设置会发生什么情况。我认为(老实说不记得在这一点上),这是我在过去使用的配置https://gist.github.com/jorgelbg/fe7944e8ca952074d293cd250100c1db,试试看 –