文本索引算法

Maj*_*ajd 9 c# database indexing winforms

我正在为归档系统编写一个C#winform应用程序.该系统有一个庞大的数据库,其中一些表有超过150万条记录.我需要的是一种索引这些记录内容的算法.主要是,文件是Microsoft office,PDF和TXT文件.谁有人可以帮忙?无论是想法,链接,书籍还是代码,我都很感激:)

例如:如果我在数据库中的某个文件夹中搜索"国际"这个词,我会得到包含该词的所有文件按照某个标准排序,例如相关性,修改日期......等等

Mik*_*kos 10

您需要创建所谓的倒排索引 - 这是搜索引擎工作方式的核心(谷歌).Apache Lucene可以说是倒排索引的最佳库.你有2个选择:

  1. Lucene.net - Java Lucene库的.NET端口.

  2. Apache Solr - 一个使用Lucene库构建的完整搜索服务器,可以轻松集成到.NET应用程序中,因为它具有RESTful API.具有多种功能,如缓存,缩放,拼写检查等,开箱即用.您可以使用优秀的SolrNet库让您的app-to-Solr交互更轻松.

  3. Apache Tika提供了一个非常广泛的数据/元数据提取工具包,可以处理PDF,HTML,MS Office文档等.一个更简单的选择是IFilter API.有关详细信息,请参阅文章.