【发布时间】:2021-08-09 22:28:49
【问题描述】:
总结
我正在尝试设计一个弹性索引,该索引将为索引超过 1,000,000 个文件和对内容进行全文搜索提供坚实的基础。新文件将在初始数字化过程后不断添加。
用例
各种文件类型(Pdf、Outlook 电子邮件、mp3、txt、手写的 jpeg 等)需要通过其内容和元数据进行搜索。用户希望手动标记文档之间的关系。 ex Document A -> 包含有关 -> Document B 的信息。用户希望能够看到相关/相似的文本。用户希望对文本内容进行命名实体识别。物理文件已存储在外部计算机上,等待处理。
实施
- 使用 Apache Tika 的文件内容提取管道
- NER 使用 Spacy
- 将文件内容 + NER 标签上传到 Elastic
- 最终,我们将运行自己的搜索模型,以获得更好的搜索洞察力 + 数据科学。
如何最好地存储我提取的内容以满足用户的需求并拥有可扩展的基础?是在初始索引上运行我们训练有素的命名实体识别还是在文本提取上传到弹性后运行更好?
或者使用下面的现有解决方案而不是重新发明轮子更有意义?
https://github.com/dadoonet/fscrawler
【问题讨论】:
标签: elasticsearch database-design nlp architecture spacy