Solr:您可以将整个文档分配给单个字段(文档中找不到的字段)吗?

时间:2016-03-17 04:37:33

标签: python solr

我必须将许多不同的文档(xls,pptx,txt,csv,pdf)放入solr核心。所有文档都是非结构化和无关的。我想做点什么:

{
    'filename':'doc1',
    'content': entire doc
}

在这种情况下,filename不是实际文档中的标记,而是由用户分配,content,也不在实际文档中,将映射到整个索引文档。

我计划通过python脚本进行处理,虽然有工具从富文本文档中提取文本,但我宁愿将它们传递给solr并让solr忽略其内部标记(例如pdf)和map整个文档到上述模式的contents标记。

总之,如何创建一个包含目标文档中找不到的两个字段的模式,并将整个文档编入索引并将其映射到其中一个字段(text_en)?我对solr来说有点新鲜,所以我的词汇可能有点混浊,所以如果你不确定我想要达到什么目的,请要求澄清。

1 个答案:

答案 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