日期:2014-05-18  浏览次数:20437 次

做全文检索时,想把查询到的附近的一段文本提取出来,像google那样,如何才能使性能根好?分不多了,已经全部了!
做全文检索时,想把查询到的附近的一段文本提取出来,像google那样,如何才能使性能根好?

感觉indexof substring这些东性能会很差,如果是很大的文本

不知道大家有什么根好的办法,获取什么其它组件?

谢谢!

------解决方案--------------------
用正则表达式效果会好很多
------解决方案--------------------
看看lucene.net它是如何做的,
具体我也没做过
------解决方案--------------------
看我的BLOG,里面有多Lucene.NET Nutch.NET 的介绍。
全文检索使用Lucene.NET 很好用,先对文本建立索引,然后就是查询匹配了。
------解决方案--------------------
刚好在搞
参考参考 关键词前后面提取0到20个字符(防止关键词在文末或则文尾出错)
VB.NET code

dim result as string
dim strposi as string ‘高亮显示
Dim matchesregex As New Regex("[color=#FF0000].{0,20}[/color]" & keyword(j) & "[color=#FF0000].{0,20}[/color]", RegexOptions.IgnoreCase Or RegexOptions.Multiline)
                Dim matchesfound As MatchCollection
                Dim matchmade As Match
                matchesfound = matchesregex.Matches(strcontent)
                For Each matchmade In matchesfound
                    strposi = strposi & matchmade.Value
                    strposi = Replace(strposi, keyword(j), "<font color=#C60A00>" & keyword(j) & "</font> ")
                Next
                result = result & strposi