我目前正在设计一个全文搜索系统,其中用户对MS Office和PDF文档执行文本查询,结果将返回最匹配查询的文档列表。然后,用户将选择返回的任何文档,并在MS Word、Excel或PDF查看器中查看该文档。
是否可以使用ElasticSearch或Solr导入原始二进制文档(即.docx、.xlsx、.pdf文件)导入到其“数据存储”中,然后根据命令将文档导出到用户的设备中进行查看。
以前,我使用MongoDB 2.6.6将原始文件导入到GridFS中,并将提取的文本导入到一个单独的集合(该集合包含一个文本索引),这样做效果很好。但是,MongoDB全文搜索是非常基础的,因此我现在考虑使用Solr或ElasticSearch来执行更复杂的文本搜索。
尼克
发布于 2015-01-16 14:28:09
关于solr:
如果只需要在元数据搜索时返回文档,Solr提供了一个BinaryField字段类型,你可以将二进制数据发送到base64 encoded.Keep,一般人不建议这样做,因为这可能会增加你的索引(内存要求/性能),如果可能的话,在外部存储文件的设置(以及solr中的文件路径)可能是更好的选择。
如果您希望solr自动索引pdf/doc中的文本--这可以通过提取https://wiki.apache.org/solr/ExtractingRequestHandler:https://wiki.apache.org/solr/ExtractingRequestHandler来实现
发布于 2015-03-13 17:28:26
Elasticsearch确实在_source
字段中存储文档(例如.pdfs、.docs )。它可以用作NoSQL数据存储区(与MongoDB相同)。
https://stackoverflow.com/questions/27977939
复制相似问题