solr - Solr 语言检测不适用于 pdf
问题描述
我已将Solr 7.7.3配置为检测英语和日语文档。它可以正常处理基于文本的文件,如 docx、xlsx ...但是当我转换为 pdf 时,Solr 无法检测或有时输出错误的语言(我使用 Microsoft Office 2019 将 docx 转换为 pdf)。
我还尝试了方法:来自此页面https://lucene.apache.org/solr/guide/7_7/detecting-languages-during-indexing.html的Tika、LangDetect和OpenNLP
请帮我。太感谢了!!!
solrconfig.xml
<updateRequestProcessorChain name="langid">
<processor class="org.apache.solr.update.processor.LangDetectLanguageIdentifierUpdateProcessorFactory">
<str name="langid.fl">_text_</str>
<str name="langid.langField">language</str>
<str name="langid.langsField">languages</str>
<str name="langid.fallback">fr</str>
<str name="langid.threshold">0.7</str>
<str name="langid.model">langdetect-183.bin</str>
<str name="langid.whitelist">en-US,en-GB,en,ja</str>
</processor>
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
<requestHandler name="/update/extract"
startup="lazy"
class="solr.extraction.ExtractingRequestHandler" >
<lst name="invariants">
<str name="lowernames">true</str>
<str name="fmap.meta">ignored_</str>
<str name="fmap.content">_text_</str>
<str name="update.chain">langid</str>
</lst>
</requestHandler>
托管模式
<field name="language" type="string" indexed="true" stored="true"/>
<field name="languages" type="string" multiValued="true" indexed="true" stored="true"/>
当我尝试使用文件 Test.docx 时记录
2021-01-27 07:25:57.177 DEBUG (qtp1571967156-58) [x:doc_analyzer] oasupLanguageIdentifierUpdateProcessor语言回退到值 fr 2021-01-27 07:25:57.178 DEBUG (qtp1571967156-58) [
x:doc_LanguageLangerIdentifier] field text 2021-01-27 07:25:57.184 DEBUG (qtp1571967156-58) [ x:doc_analyzer] oasupLanguageIdentifierUpdateProcessor Language detected ja with certainty 0.9999999780558492 2021-01-27 07:25:57.185 DEBUG (qtp1571967156-58) [ x:doc_analyzer ] oasupLanguageIdentifierUpdateProcessor 从字段中检测到主文档语言 [文本]: ja 2021-01-27 07:25:57.185 DEBUG (qtp1571967156-58) [x:doc_analyzer] oasupLogUpdateProcessorFactory PRE_UPDATE add{,id=Test.docx,commitWithin=1000} {langid.whitelist=en-US,en- GB,en,ja&update.chain=langid&df= text &commitWithin=1000&langid.langField=language&literal.id=Test.docx&fmap.meta=ignored_&lowernames=true&langid.model=langdetect-183.bin&langid.fallback=fr&langid.threshold=0.7&fmap.content=文本&langid.langsField=语言&langid.fl=文本&overwrite=true&wt=json}
当我尝试使用文件 Test.pdf 时记录
2021-01-27 07:30:56.643 DEBUG (qtp1571967156-19) [x:doc_analyzer] oasupLanguageIdentifierUpdateProcessor语言回退到值 fr 2021-01-27 07:30:56.643 DEBUG (qtp1571967156-19) [x:doc_analyzer确定性检测到 en-US 1.0 2021-01-27 07:30:56.643 DEBUG (qtp1571967156-19) [ x:doc_analyzer] oasupLanguageIdentifierUpdateProcessor 字段语言已包含值 en-US,未覆盖。2021-01-27 07:30:56.644 调试 (qtp1571967156-19) [x:doc_analyzer] oasupLogUpdateProcessorFactory PRE_UPDATE 添加{,id=Test.pdf,commitWithin=1000} {langid.whitelist=en-US,en-GB,en ,ja&update.chain=langid&df=文本&commitWithin=1000&langid.langField=language&literal.id=Test.pdf&fmap.meta=ignored_&lowernames=true&langid.model=langdetect-183.bin&langid.fallback=fr&langid.threshold=0.7&fmap.content= text &langid.langsField=languages&langid.fl= text &overwrite =真&wt=json}
@文件:https : //drive.google.com/drive/folders/1igD_XCEGsIm08shLShXJ7IMV4qFscdGh ?usp=sharing
解决方案
推荐阅读
- javascript - 如何从选项列表中获取一项
- html - 屏幕尺寸变化时使图像保持纵横比
- excel - 验证不适用于从模板创建的文件
- bash - 为 .bash_profile 添加新路径;.bash_profile PATH 不同于 echo $PATH
- python - Matplotlib 如何计算散点的底部 y 值
- c# - 如何在 C# 包装器中调用 C++ 非托管代码?
- python-3.x - 填充图像中的圆形路径
- php - 使用 PHP 将 HTML 表单提交到数据库并返回 php 页面而不是提交
- java - 使用标识键将 Stream 映射到 Map 的快捷方式
- c# - 如何从命名空间获取图层?