我必须将许多不同的文档(xls,pptx,txt,csv,pdf)放入solr核心中。 所有文档都是非结构化且不相关的。 我想做这样的事情:
{
'filename':'doc1',
'content': entire doc
}
在这种情况下,filename
不是实际文档中的标记,而是由用户分配的,content
也不是在实际文档中,将映射到整个索引文档。
我计划通过 python 脚本进行处理,虽然有一些工具可以从富文本文档中提取文本,但我宁愿将它们传递给 solr 并让 solr 忽略它们的内部标签(例如在 pdf 中)并将整个文档映射到上述模式的 contents
标签。
总而言之,如何创建一个包含目标文档中找不到的两个字段的架构,并为整个文档编制索引并将其映射到其中一个字段 ( text_en
)? 我对solr有点陌生,所以我的词汇可能有点模糊,所以如果你不确定我想要达到什么目的,请要求澄清。
Solr 中的 Tika 模块具有配置选项,应该能够执行您想要的操作:
literal.
:使用为每个文档提供指定值的名称填充字段。数据可以是 多值(如果字段是多值)。
因此,如果添加名为 literal.filename=doc1
的参数,则会在文档的filename
中添加doc1
。
还有一个忽略架构中不存在的所有字段的示例:
uprefix:使用给定前缀为架构中未定义的所有字段添加前缀。这在与动态结合使用时非常有用 字段定义。示例:
uprefix=ignored_
将有效地忽略 给定示例架构的 Tika 生成的所有未知字段包含<dynamicField name="ignored_*" type="ignored"/>
要将字段移动到其他字段名称中:
fmap.
:将一个字段名称映射(移动)到另一个字段名称。 source_field
必须是传入文档中的字段,并且 值是要映射到的 Solr 字段。示例:fmap.content=text
原因 Tika 生成的content
字段中的数据将移动到 索尔的text
领域
最后一个提示 - 完全自定义处理,但仍使用可用的 Solr 服务器和 Tika 来处理文档(然后在索引之前进一步揉捏数据):
仅提取:默认值为 false。如果为 true,则返回从 Tika 提取的内容,而不为文档编制索引。(另见 提取格式)