在开发搜索我正在构建的站点时,我决定采用廉价而快捷的方式使用Microsoft Sql Server的全文搜索引擎,而不是像Lucene.Net那样更强大的东西.
不过,我希望拥有的功能之一是google-esque相关文档片段.我很快发现确定"相关"片段比我意识到的更难.
我想根据找到的文本中的搜索词密度选择片段.所以,基本上,我需要在文本中找到最密集的搜索词.通道是一些任意数量的字符(比如200 - 但它确实无关紧要).
我的第一个想法是在循环中使用.IndexOf()并构建一个术语距离数组(从先前找到的术语中减去找到的术语的索引),然后......什么?将任意两个,任意三个,任意四个,任意五个顺序数组元素相加,并使用具有最小和的那个(因此,搜索项之间的最小距离).
这看起来很混乱.
有没有一种既定的,更好的,更明显的方式来做到这一点,而不是我想出来的?
尽管它是用Java实现的,但您可以在此处看到针对该问题的一种方法:http: //rcrezende.blogspot.com/2010/08/smallest-relevant-text-snippet-for.html