文档资源库建设,搜索引擎如何搜索文件的内容?

 

我们之前有几篇文章,介绍了如何构建资源库以及电子文档数据库,《图书馆多媒体电子资源库建设方案》《文化遗产数据库建设方案》,那么在建设文档资源库或者电子资源库中,如何检索文件中的内容,变成了一个重要的问题。

 

 

搜索的本质

搜索,其实本质上是查字典。

所以,程序搜索和字典也是一样,通常情况下,要建立字典目录,也就是索引。

于是,步骤便是:1 分词、2 索引、3 检索。

但是文件的内容,我们该如何搜索?

其实本质上是一样,我们的流程是分词、索引、检索,相当于加工->存储->搜索,如果要搜索文档中内容,我们要做的只是在加工层面,将文档的内容提取出来,然后进行分词、索引、检索即可。

 

 

 

文档内容的提取

那么首先,我们就要进行文件提取,我们这里列举一下常见文件提取工具,

    (1)Apache Tika APP

    (2)Apache Tika Server

    (3)The Solr built-in extractor

    (4)pdftotext for pdfs

    (5)python pdf2text for pdfs

    (6)golang docconv

上面的几个,都是常见的文档提取工具,我们就不做更深入的研究,如果要使用,大家Google一下,然后将对应的命令安装上就可以。

最终是通过Web调用这些命令,然后将文档的内容提取出来,给分词程序进行分词,然后索引加工。

 

 

检索文档内容

一旦索引入库了,那么就没有什么其他难点了,跟其他普通的检索程序一样,将对应的字段的内容,按照用户输入进行检索。下图是一个Search API的架构,后台的扩展性,解释了如何架构一个灵活的搜索引擎。

文档索引

 

文档图片索引

 

 

如何通过开源的解决方案

我们采用开源的Drupal来构建文档数据库/电子资源数据库,其实Drupal本身自带了很多模块,能够自动完成将文档里面的数据提取出来,然后导入索引库,因此这些工作其实不用我们自己开发,推荐的模块如下:

  1. Search API Attachement 
    https://www.drupal.org/project/search_api_attachments 
  2. File Extractor 
    https://www.drupal.org/project/file_extractor 

具体的工作原理跟我们上面讲的是一样,因此原理都是相通的,只是模块直接帮我们处理了很多细碎的工作,比较比较方便使用,此外也是经过了很多改进以及Bug修复,相对来说,比较稳定。

此外,可以参考附件的Solr架构介绍的PDF文件,可以了解Solr更多的细节介绍。

 

更多方案介绍,可以参考我们的《文化数据库方案介绍

更多技术资料,可以参考我们之前相关介绍文章,如果需要建设相关数据库,以及Drupal灵活的元数据/检索/可视化构建演示或者资料,可以联系我们。

 

1、如何用开源的系统来构建知识库平台?

2、如何基于开源系统构建资料库/文档库平台

3、如何建设在线展览和多媒体展览?

4、CMS如何存储和管理大量图片/海量图片?

5、CMS如何做视频管理?

6、文档资源库建设之搜索引擎如何搜索文件的内容(pdf/wrod)?

7、基于开源框架的特色数据库/资源库的构建方案

8、使用Phaser构建2D的在线展览系统

9、Headless CMS:以API为输出的内容系统的构建

10、开源的CMS如何实现问卷调研?

 

 

 

 

 

附件