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