当前位置: 代码迷 >> ASP.NET >> 做全文检索时,想把查询到的附近的一段文本提取出来,像google那样,怎么才能使性能根好?分不多了,已经全部了
  详细解决方案

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

热度:9008   发布时间:2013-02-25 00:00:00.0
做全文检索时,想把查询到的附近的一段文本提取出来,像google那样,如何才能使性能根好?分不多了,已经全部了!
做全文检索时,想把查询到的附近的一段文本提取出来,像google那样,如何才能使性能根好?

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

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

谢谢!

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