【发布时间】:2018-05-18 20:00:51
【问题描述】:
我有 2 个目录:1 个带有 txt 文件,另一个带有相应的 JSON(元数据)文件(每个大约 90000 个)。每个 CSV 文件都有一个 JSON 文件,它们共享相同的名称(它们不共享任何其他字段)。我正在尝试在 Apache solr 中索引所有这些文件。
txt 文件只有纯文本,我将每一行映射到一个字段调用“句子”,并使用数据导入处理程序将文件名作为字段包含在内。这里没有问题。
JSON 文件有元数据:3 个标签:URL、作者和标题(对应 txt 文件中的内容)。 当我索引 JSON 文件时(我只是使用了 _default 架构,并将字段发布到架构中,如官方 solr 教程中所述),我不知道如何将文件名作为字段放入索引中。据我所知,这不是对 JSON 文件使用数据导入处理程序的方法。我读过我可以通过 bin/post 工具传递文字,但据我所知,我不能将文件名作为文字动态传递。
我需要获取文件名,这是我可以将元数据与下游 Python 代码中 txt 文件中的每个句子相关联的唯一方法。
因此,如果有人对我应该如何索引 JSON 文件名以及 JSON 内容(甚至是一些解决方法)有任何建议,我将永远感激不尽。
【问题讨论】:
-
那么您今天的索引情况如何?您如何知道要索引哪些文件,以及如何索引它们?
-
@MatsLindh,在此之前我没有索引文件,它们是由其他人生成的。要索引的文件位于一个目录中,具有不同的扩展名,就像我提到的那样。我已经索引了 txt 文件,现在必须索引这些 json 文件(这很简单:它们只有 3 个字段:url、作者、标题)。
-
@MatsLindh 我能想到的解决这个问题的唯一方法是一个非常丑陋的解决方法:将所有 json 文件转换为 csv 文件,然后使用带有 LineEntityProcessor 的数据导入处理程序对其进行索引和 RegexTransformer 像这样:`
` 但我宁愿直接用文件名索引 Json 文件。你有什么建议吗? -
大多数流行语言都有可用的 solr 客户端,因此,如果您要编写代码将 JSON 转换为 CSV - 请阅读 JSON 并将其作为常规 Solr 文档提交给 Solr。您也可以使用文件名。
-
谢谢@MatsLindh,这比将文件转换为 CSV 更好。我将查看其中一个 Python 客户端模块的文档(似乎有一些!)。