我有一个工作流程,其中有一层预处理以便提取字段 - 稍后将其移交给另一个进程以被摄取到Solr中。原始文件包含带有记录的文档,以及表格数据。 其中一些列在Solr中编制索引,以获取该字段值的相关documentID。即你查询像
q=indexedField:indexedValue1
fl= documentId
并得到如下回复:
... response: {documentID1, documentID3}
假设indexedValue1出现在文档documentID1,documentID3中的字段indexedField中。
然后,每个记录将在我们要索引的其中一个字段上具有值。预处理将这些值连接到一个(长)文本字段,每个值都作为标记,以便稍后可以按它们进行搜索。传递给Morphlines时的索引字段如下所示: ... value1 value2 ... valueN ...
提取某些字段然后在字段中重新分组,因此如果您想按值搜索,则可以知道它在哪个文档中。
(直到这里相当简单)
但是,我怎么能在Solr中存储我想要搜索的每个标记,原始文件的偏移量(或记录号)?问题不是提取这些信息(这是另一个问题,但我们可以解决它)。
即。你会像上面一样查询,但会得到每个文件ID,记录所在的原始记录号或文件偏移量 - 如:
... response:{ {documentID1, [1234, 5678]}, { documentID3, [] } }
这有可能吗?在这种情况下,有效建模的Solr数据结构是什么?
答案 0 :(得分:0)
听起来你正在寻找的是Payloads。 Solr中存在此功能,但通常需要自定义代码才能真正从中受益。
然而,挑战是您似乎想要返回与搜索期间匹配的令牌相关联的有效负载。由于搜索侧重于返回文档并且提取特定文档中匹配的内容是一项单独的挑战,通常由荧光笔解决,因此更加复杂。