作者:大兵_小将 | 来源:互联网 | 2023-05-26 15:15
我目前正在设计一个全文搜索系统,用户可以在其中对MS Office和PDF文档执行文本查询,结果将返回与查询最匹配的文档列表.然后,用户将选择返回的任何文档,并在MS Word,Excel或PDF查看器中查看该文档.
我可以使用ElasticSearch或Solr将原始二进制文档(即.docx,.xlsx,.pdf文件)导入其"数据存储",然后根据命令将文档导出到用户的设备以供查看.
以前,我使用MongoDB 2.6.6将原始文件导入GridFS,并将提取的文本导入单独的集合(该集合包含文本索引),并且工作正常.但是,MongoDB全文搜索是非常基本的,因此我现在正在寻找Solr或ElasticSearch来执行更复杂的文本搜索.
缺口
1> Alexandre Ra..:
Solr和Elasticsearch都将索引文档的内容.Solr有内置功能,Elasticsearch需要一个插件.两种方式都很简单,两者都使用Tika.
它们都不会存储文档本身.你可以尝试让他们这样做,但他们不是为它设计的,你会受苦.
此外,Solr和Elasticsearch目前都不建议用作主存储.他们可以做到这一点,但对于他们而言,它并不像文件系统实现那样至关重要.
因此,我建议将文件放在其他地方并使用Solr/Elasticsearch进行搜索.这就是他们闪耀的地方.
2> John Petrone..:
我会尝试Elasticsearch附件插件.详细信息可以在这里找到:
https://www.elastic.co/guide/en/elasticsearch/plugins/2.2/mapper-attachments.html
https://github.com/elasticsearch/elasticsearch-mapper-attachments
它建立在Apache Tika之上:
http://tika.apache.org/1.7/formats.html
附件类型
附件类型允许索引不同的"附件"类型字段(编码为base64),例如,Microsoft Office格式,打开文档格式,ePub,HTML等(可在此处找到完整列表).
附件类型作为插件扩展提供.该插件是一个简单的zip文件,可以下载并放在$ ES_HOME/plugins位置下.它将被自动检测并添加附件类型.
支持的文档格式
超文本标记语言
XML和派生格式
Microsoft Office文档格式
OpenDocument格式
iWorks文档格式
可移植文档格式
电子出版格式
富文本格式
压缩和包装格式
文字格式
Feed和Syndication格式
帮助格式
音频格式
图像格式
视频格式
Java类文件和档案
源代码
邮件格式
CAD格式
字体格式
科学的格式
可执行程序和库
加密格式