在数据库中定义一段很长的文字。如
[quote]Google是全球驰名的搜索引擎技术开发商和高效的广告宣传媒介。“ Google ”取自数学术语googol ,意思是一个1后面有100个0。从1998年创立以来,Google富于创新的搜索技术和典雅的用户界面设计使Google 从当今的第一代搜索引擎中脱颖而出。作为世界著名的搜索引擎,Google将自身建立在网页级别(PageRankTM)技术之上,这项获得专利的技术可确保Google始终将最重要的搜索结果首先呈现给用户。[/quote]
如我搜索:[color=red][b]网页级别[/b][/color]
则显示:[quote]Google将自身建立在网页级别(PageRankTM)技术之上[/quote]
大家,有什么好的办法没?
[img]/upload/attachment/86544/bb03737c-9bca-3e75-b863-ba44e1fe3e72.jpg[/img]
其实类似于Google,百度搜索的结果,只显示一部分。
它这个应该是从摘要直接获得的,搜索引擎提取了一个网页,然后对这个页面建立摘要,
[quote]作为世界著名的搜索引擎,Google将自身建立在网页级别(PageRankTM)技术之上,这项获得专利的技术可确保Google始终将最重要的搜索结果首先呈现给用户。[/quote]
搜索这个关键字它直接显示这个摘要字符串.
另一种方式如你所说的保存全文,然后显示部分的.
可以使用数据库的字符串截取函数,外加上程序的配合,数据库支持的字符串截取函数很有限,就是Substr,你可以找找这个函数的用法.
比如说你搜索想显示的摘要长度大约300个汉字,那你就从数据库substr一个三四百长度的字符串出来,然后你需要进行一个额外的处理,不然会有半个字句的.这个处理不难,你可以用string的函数,取第一个句号做开始,最后一个句号结束这样的字句,当然逗号也行.
比如
[quote]Google是全球驰名的搜索引擎技术开发商和高效的广告宣传媒介。“ Google ”取自数学术语googol ,意思是一个1后面有100个0。从1998年创立以来,Google富于创新的搜索技术和典雅的用户界面设计使Google 从当今的第一代搜索引擎中脱颖而出。作为世界著名的搜索引擎,Google将自身建立在网页级别(PageRankTM)技术之上,这项获得专利的技术可确保Google始终将最重要的搜索结果首先呈现给用户。[/quote]
你用substr取到了:
[quote]以来,Google富于创新的搜索技术和典雅的用户界面设计使Google 从当今的第一代搜索引擎中脱颖而出。作为世界著名的搜索引擎,Google将自身建立在网页级别(PageRankTM)技术之上,这项获得专利的技术可确保Google始终将最重要的搜索结果首先呈[/quote]
你就可以用String的subString方法,取第一个句号跟最后一个符号,或者甚至直接到最后的句子:
[quote]作为世界著名的搜索引擎,Google将自身建立在网页级别(PageRankTM)技术之上,这项获得专利的技术可确保Google始终将最重要的搜索结果首先呈[/quote]
如果不是符号结尾的,加上一个 ...的省略号就可以了,就像你给出的图片一样
这个还不好办啊 用string的substring(0,i)就可以了
当然,如果你不想增加客户端的压力
你也可以在数据库设计的时候添加个字段,strShow
什么用呢?
就是,在数据库中就将信息整合好,将要显示的文字预先弄好,下次在页面上酒直接显示这个字段的内容就是了
上面第二种方法会给数据库带来压力
那么就要有其他技术添加的
很贱的想法是,数据库定时操作
对这些信息整合 不必再添加的时候就干
每天午夜,将很长文字的那个字段中没有经过整合的信息整合到strShow中去,这样,就减轻了服务器的工作了。
你可以先从数据库通过
[code="sql"]select content from table where content like '%网页级别%';[/code]
把包含的内容找出来
然后你在java里面用正则表达式或者其他方式处理返回前台就可以得到 ","逗号之间的文本
[code="java"]
String[] str = content .split(",");//已逗号隔开分成数组
String ss = "";
for(String s:str){
if(s.indexOf("网页级别") != -1){
System.out.println("============>"+ss); //这里输出所有包含"网页级别"的文本
}
}
[/code]