【发布时间】:2011-01-07 18:48:52
【问题描述】:
我正在编写一个内部应用程序,其中包含多条文本信息以及有关这些文本的多条数据。这些数据片段将按输入顺序保存在数据库(SQL Server,尽管这可能会改变)中。
我希望能够搜索这些信息中最相关的信息,其中最相关的信息位于顶部。我最初考虑使用 SQL Server 全文搜索,但它不像我希望的那样灵活满足我的其他需求,所以我似乎需要为此开发自己的解决方案。
据我了解,需要的是inverted index,然后根据所持有的附加信息的结果来恢复和修改所述倒排索引的内容(尽管现在可以将其留到以后的日期因为我只希望倒排索引从提供的数据库表/字符串中索引主要文本)。
我在 Java 中使用 Hashtable 编写这段代码,其中键作为单词,值作为单词出现的列表,但老实说,我还是 C# 的新手,并且有仅在处理信息时才真正使用 DataSets 和 DataTables 之类的东西。如果需要,我会在清除这台笔记本电脑的病毒后尽快上传 Java 代码。
如果给定一个表或字符串列表中的一组条目,如何在 C# 中创建一个倒排索引,该索引最好保存到 DataSet/DataTable 中?
编辑:我忘了提到我已经尝试过 Lucene 和 Nutch,但需要我自己的解决方案,因为修改 Lucene 以满足我的需要比编写倒排索引需要更长的时间。我将处理大量元数据,一旦基本倒排索引完成,这些元数据也需要处理,所以我现在需要的是使用倒排索引在一个区域上进行基本的全文搜索。最后,倒排索引不是我每天都要做的事情,所以如果能尝试一下就好了。
【问题讨论】:
-
这是另一个基于泛型的 C# 倒排索引:aleandmusic.com/InvertedIndex.aspx
标签: c# search data-structures full-text-search