你所说的包括:全文检索、取动态摘要(按检索词)以及检索结果的反显三方面的问题。
对于第一个全文检索说简单使用sqlserver也能实现,说复杂卖到几十万的全文检索系统也有。
对于去动态摘要一般的做法是取得整篇文章,然后再文章中完全匹配检索词,再把这个检索词前后N个字节的内容显示出来。
对于反显,取动态摘要的时候完全匹配到检索词后在该词的前后加上html标记,如:<b>检索词</b>就可以实现了。
对于第一个全文检索说简单使用sqlserver也能实现,说复杂卖到几十万的全文检索系统也有。
对于去动态摘要一般的做法是取得整篇文章,然后再文章中完全匹配检索词,再把这个检索词前后N个字节的内容显示出来。
对于反显,取动态摘要的时候完全匹配到检索词后在该词的前后加上html标记,如:<b>检索词</b>就可以实现了。
结果有几个记录被查找出来了,但我改为Tof,则没记录查到。我个人的结论是:全文索引只能匹配单词短语。我看到的ASP.net以及SQL上的例子,都是用完整的单词在演示给读者看,全文索引的效果,不能查单个字母。这是第一个问题。第二个问题,假设我有一个自己的数据表,建立了个全文索引,在字符类型的列上建立索引。但我给他填充的值是“你好 谢谢 再见”。按照我刚才测试northwind的结论,我用“谢谢”应该能查出来,但结论是查不出来。我打个“谢”,也才查不出来。有时候还有错误的。所以,我怀疑是不是SQL只能查英文单词,不能匹配字母,也就是说它不像select 的like那样可以前后匹配任意字符。另外一个方面,全文索引的更新是非常消耗资源的!每次填充索引都要消耗一定的资源!以上是我对使用全文索引的一些想法。请参考!
我所得出的一些结论也只是我机器上的调试结果,我不知道别人的怎么样!谢谢
Edit 是你要替换的控件上的文本的ID。如:Label
findwhat 是你要替换的文本
replacewith 替换后的文本,如把 aaa 替换成 "<font color='#000000'>aaa</font>"
ms-help://MS.MSDNQTR.2003FEB.2052/vblr7/html/vaoprLike.htm
我用的是(vs2003
比较两个字符串。
result = string Like pattern
各部分说明
result
必选项。任何 Boolean 变量。结果是 Boolean 值,它表示 string 是否匹配 pattern。
string
必选项。任何 String 表达式。
pattern
必选项。任何符合“备注”中描述的模式匹配约定的 String 表达式。
备注
如果 string 匹配 pattern,则 result 为 True;如果不匹配,则 result 为 False。如果 string 和 pattern 都是空字符串,则结果是 True。否则,如果 string 或 pattern 中有一个为空字符串,则结果为 False。
Like 运算符的行为取决于 Option Compare 语句。每个模块的默认字符串比较方法是 Option Compare Binary。
内置的模式匹配为字符串比较提供了一种多功能工具。模式匹配功能允许您使用通配符、字符列表或字符范围的任何组合来匹配字符串。下表显示 pattern 中允许的字符和这些字符的匹配项:
pattern 中的字符string 中的匹配项
?任何单个字符
*零或更多字符
#任何单个数字(0 到 9)
[charlist]charlist 中的任何单个字符
[!charlist]不在 charlist 中的任何单个字符括在方括号 ([ ]) 内的一个或多个字符的组 (charlist) 可以用于匹配 string 中的任何单个字符,并且可以包含几乎任何字符代码(包括数字)。
注意 若要匹配特殊字符,如左方括号 ([)、问号 (?)、数字符号 (#) 和星号 (*),请将它们括在方括号中。不能在组中使用右方括号 (]) 来匹配它自己,但可以在组外作为单个字符使用。
通过使用连字符 (–) 将范围的上下限分开,charlist 可以指定字符的范围。例如,如果 string 中的相应字符位置包含范围 A–Z 中的任何大写字母,则 [A-Z] 将产生匹配。可以在方括号中包括多个范围而不用分隔符。
指定范围的含义取决于在运行时有效的字符排序(由 Option Compare 和运行代码的系统的区域设置确定)。当使用 Option Compare Binary 时,范围 [A–E] 匹配 A、B、C、D 和 E。当使用 Option Compare Text 时,[A–E] 匹配 A、a、À、à、B、b、C、c、D、d、E 和 e。该范围不匹配 Ê 或 ê,因为在排序顺序中,重音字符排在非重音字符之后。
模式匹配的其他重要规则包括:
charlist 开始处的感叹号 (!) 意味着仅当在 string 中找到除 charlist 以外的任何字符时才发生匹配。当在方括号外使用时,感叹号匹配它自己。
连字符 (-) 可以出现在 charlist 的开始处(如果有感叹号,则在它后面)或结尾处以匹配它自己。在任何其他位置,连字符标识由连字符两侧的字符界定的字符范围。
在指定字符范围时,这些字符必须以升序排序顺序出现(即,从最低到最高)。因此,[A-Z] 是有效的模式,但 [Z-A] 不是。
字符序列 [] 被视为零长度字符串 ("")。
在某些语言中,字母表中有一些表示两种不同字符的特殊字符。例如,有几种语言使用字符 æ 来表示字符 a 和 e(当这两个字符一起出现时)。Like 运算符认为该单个特殊字符与这两个字符是等效的。
当在系统区域设置中指定使用特殊字符的语言时,在 pattern 或 string 中出现的单个特殊字符都匹配其他字符串中等效的双字符序列。与此类似,括在方括号内的 pattern 中的单个特殊字符(独立存在、在列表中或在某个范围内)匹配 string 中等效的双字符序列。
示例
本示例使用 Like 运算符将字符串与模式比较。结果是 Boolean 值,它表示该字符串是否符合该模式。
Dim myCheck As Boolean
myCheck = "F" Like "F" ' Does "F" match "F"? Returns True.
myCheck = "F" Like "f" ' Does "F" match "f"? Returns False.
myCheck = "F" Like "FFF" ' Does "F" match "FFF"? Returns False.
myCheck = "aBBBa" Like "a*a" ' Does "aBBBa" have a "a" at the
' beginning, an "a" at the end, and any number of characters in
' between? Returns True.
myCheck = "F" Like "[A-Z]" ' Does "F" occur in the set of
' characters from A to Z? Returns True.
myCheck = "F" Like "[!A-Z]" ' Does "F" NOT occur in the set of
' characters from A to Z? Returns False.
myCheck = "a2a" Like "a#a" ' Does "a2a" begin and end with an
' "a" and have any single-digit number inbetween? Returns True.
myCheck = "aM5b" Like "a[L-P]#[!c-e]" ' Does "aM5b" fit the following
' pattern: Begins with "a", has and character from the set L through
' P, followed byb any single-digit number, and finally contains any
' character excluded from the character set c through e. Returns True.
myCheck = "BAT123khg" Like "B?T*" ' Does "BAT123khg" fit the
' following pattern: Begins with "B", followed by any single
' character, followed by a "T" and finally zero or more characters
' of any type. Returns True.
myCheck = "CAT123khg" Like "B?T*" ' Does "CAT123khg" fit the
' following pattern: Begins with "B", followed by any single
' character, followed by a "T" and finally zero or more characters
' of any type. Returns False.
)