事先声明,以下皆为个人的想法。
本人自己想的方式,但中间遇到一些问题,想法如下:
刚开始,在没有帮助数据的情况下,数据库中有一个表记录搜索的关键字。比如,我搜“金山词霸2007”,数据库中增加一条数据(关键字为“金山词霸2007”,搜索次数为1);再有人搜“金山词霸2009”,加入一条数据;然后我搜“金山词霸”,下面会出现“金山词霸2007”和“金山词霸2009”两个帮助;但如果带有“金山词霸”关键字多了怎么办?总不能有1000个词条,在搜索框下提示1000个吧?自己想的解决办法:搜索次数大于N次的词条显示出来(好像Google没有固定显示几个搜索帮助);如果一些词条被搜索到的频率很低怎么办?可以设置隔一段时间系统自动检测搜索次数少于N次词条被删除,以免数据库被一些垃圾数据占用。
还有些问题如何将数据库中的词条显示在搜索框下?重要的一点就是当我输入“jinshanciba”的时候,下面也提示“金山词霸2007”??这个如何解决的?望各位指教下~
回答你最后一个问题:
上面的回答者讲的是英汉转换的问题。
至于如何在搜索框里实现只要输入,就出现搜索提示。这是用AJAX做的。
可以这样:搜索框,即input只要value onchanged,就发送一个事件到后台处理,在数据库中检索,然后将返回值写进一个xml文件。然后提示信息是通过这个xml文件来显示的。
通过ajax的异步通信机制,只要搜索框内容变化,就不断的发送请求,更新提示信息。
回答问题1:搜索提示应该是模糊匹配,类似于 like 关键字%这种型式吧。
回答问题2:提示显示多少可以在匹配时就设定 like 关键字% limit 0,10
这里就只匹配前10条数据。
回答问题3:google提供了翻译的api,其中就支持拼音。举个例子:比如你输入“成都”的话,翻译之后是"chengdu".
你应该只显示所有关键字的降序的前10个就好了,
没必要搞这么麻烦
jinshanciba也就是拼音,找个汉字转拼音的开源库(已经有了),数据库增加一个字段存储拼音的,就容易了