C# 查找相关文档片段用于搜索结果显示

标签 c# algorithm search relevance significance

在为我正在构建的站点开发搜索时,我决定采用廉价且快速的方式并使用 Microsoft Sql Server 的全文搜索引擎,而不是像 Lucene.Net 这样更强大的引擎。

不过,我希望拥有的功能之一是 google-esque 相关文档片段。我很快发现确定“相关”片段比我意识到的要困难。

我想根据找到的文本中的搜索词密度来选择片段。因此,从本质上讲,我需要在文本中找到搜索词最多的密集段落。一段是任意数量的字符(比如 200——但这并不重要)。

我的第一个想法是在循环中使用 .IndexOf() 并构建一个术语距离数组(从先前找到的术语中减去找到的术语的索引),然后......什么?将任意两个、任意三个、任意四个、任意五个顺序数组元素相加,并使用总和最小的元素(因此,搜索词之间的距离最小)。

这看起来很乱。

是否有比我想出的更成熟、更好或更明显的方法来做到这一点?

最佳答案

虽然它是用 Java 实现的,但您可以在此处看到解决该问题的一种方法: http://rcrezende.blogspot.com/2010/08/smallest-relevant-text-snippet-for.html

关于C# 查找相关文档片段用于搜索结果显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/282002/

相关文章:

c# - IEnumerable<T>.ToLookup<TKey, TValue>

在特定条件下将数字列表分配给N组的算法

c# - 是否 AvalonEdit :TextEditor have quick search/replace functionality?

c# - lock(objlocker) 是否使该对象在应用程序范围内线程安全?静态成员是否自动线程安全?

C#,如何将字节数组减半?

c# - 为 WPF 和 MVVM 中的模块(子) View 模型提供 "trigger-method"

c# - 比较字符串相似度

C# 图形算法库

使用动态内容搜索单个页面

php - 搜索数组并获取数组键