首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文本索引算法

文本索引算法
EN

Stack Overflow用户
提问于 2010-12-23 09:09:41
回答 3查看 5.3K关注 0票数 9

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

例如:如果我在数据库的某个文件夹中搜索单词"international“,则会得到包含该单词的所有文件,这些文件按特定条件排序,例如相关性、修改date...etc

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-23 09:46:58

你需要创建一个所谓的倒排索引--这是搜索引擎工作原理的核心(类似于Google)。Apache Lucene可以说是倒排索引的最佳库。您有两个选项:

  1. Lucene.net - Java Lucene library.
  2. Apache Solr的一个.NET端口-一个使用Lucene libs构建的功能齐全的搜索服务器,可以很容易地集成到您的.NET应用程序中,因为它有一个RESTful API。具有几个开箱即用的功能,如缓存、缩放、拼写检查等。您可以使用出色的SolrNet库简化应用程序到Solr的交互。
  3. Apache Tika提供了一个非常广泛的数据/元数据提取工具包,可以处理PDF、HTML、MS Office文档等。一个更简单的选择是IFilter应用编程接口。有关更多详细信息,请参阅this文章。
票数 11
EN

Stack Overflow用户

发布于 2010-12-23 09:53:37

看起来你需要两样东西。首先,您需要一个实际执行索引的系统。为此,您可以使用Lucene,也可以使用Mikos提到的Apache Solr。你可能还想看看Sphinx,这是另一个全文搜索引擎。您还可以使用数据库中内置的全文功能。SQL Server和MySQL都具有全文索引功能。许多其他数据库也是如此。您需要的第二件事是一种从文件中提取文本的方法。对于txt文件和HTML文件,这很容易,因为大多数全文搜索引擎都会将它们作为常规文本接受。对于更复杂的二进制文档,如MS Word或PDF,您必须找到另一种方法从其中提取文本。

票数 2
EN

Stack Overflow用户

发布于 2010-12-23 11:02:41

根据我的说法,执行表分区,对具有id的表进行索引,然后执行搜索。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4515099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档