我正在为归档系统编写一个C# winform应用程序。该系统有一个巨大的数据库,其中一些表可能有超过150万条记录。我需要的是一个算法来索引这些记录的内容。这些文件主要是Microsoft office、PDF和TXT文档。有人能帮上忙吗?无论是想法、链接、书籍还是代码,我都很欣赏:)
例如:如果我在数据库的某个文件夹中搜索单词"international“,则会得到包含该单词的所有文件,这些文件按特定条件排序,例如相关性、修改date...etc
发布于 2010-12-23 09:46:58
你需要创建一个所谓的倒排索引--这是搜索引擎工作原理的核心(类似于Google)。Apache Lucene可以说是倒排索引的最佳库。您有两个选项:
发布于 2010-12-23 09:53:37
看起来你需要两样东西。首先,您需要一个实际执行索引的系统。为此,您可以使用Lucene,也可以使用Mikos提到的Apache Solr。你可能还想看看Sphinx,这是另一个全文搜索引擎。您还可以使用数据库中内置的全文功能。SQL Server和MySQL都具有全文索引功能。许多其他数据库也是如此。您需要的第二件事是一种从文件中提取文本的方法。对于txt文件和HTML文件,这很容易,因为大多数全文搜索引擎都会将它们作为常规文本接受。对于更复杂的二进制文档,如MS Word或PDF,您必须找到另一种方法从其中提取文本。
发布于 2010-12-23 11:02:41
根据我的说法,执行表分区,对具有id的表进行索引,然后执行搜索。
https://stackoverflow.com/questions/4515099
复制相似问题