首页 新闻 会员 周边

关于搜索提示的效率问题

0
悬赏园豆:15 [已解决问题] 解决于 2008-08-24 15:50
<P>大家好。</P> <P>我想请教一下搜索提示(Google搜索输入关键字时下拉框中提示***一共几结果那个)时的效率问题。假如是从文章标题中搜索,如果每次keyUp时,就发请求到服务器商搜索文章表,那查询频率不是太大了?还是说搜索完后有缓存到哪里什么的?</P> <P>还有一个,搜索时假如输入“google map”,我想让标题中这两个单词连在一起的显示在前面,而不连在一起的(如结果中只包含“google“或只包含"map")的显示在后面,关于这个的实现有何建议?是要把结果取出后再进行过滤排序么?</P>
水言木的主页 水言木 | 小虾三级 | 园豆:586
提问于:2008-08-19 20:25
< >
分享
最佳答案
0
------------------------------------------ 假如是从文章标题中搜索,如果每次keyUp时,就发请求到服务器商搜索文章表,那查询频率不是太大了?还是说搜索完后有缓存到哪里什么的? ------------------------------------------- 我曾经的做法是:每次输入完成都向服务器提交,而服务器返回该“头文字”的“推荐短语”。服务端如何对“推荐短语”排序,并且“头文字”以汉字为准、还是拼音为准(这是趋势),看你对用户搜多关键词的后期处理了。 ------------------------------------------ 还有一个,搜索时假如输入“google map”,我想让标题中这两个单词连在一起的显示在前面,而不连在一起的(如结果中只包含“google“或只包含"map")的显示在后面,关于这个的实现有何建议?是要把结果取出后再进行过滤排序么? ------------------------------------------ 结果集排序加权算法在搜索引擎制作中是比较重要的一环,诸如 google PageRank(?) 等技术就是针对该问题的多个方案之一。可以把“推荐短语”当成是对用户已用所有关键词的搜索。你的疑惑其实是对结果集进行“完整性加权”。完整性加权在我的项目中,是在用户搜索短语时对短语解词,而在多个“单词结果集”中进行整合,并在整合过程中加权。这样,含较完整短语的结果并会显示在总结果集前面。 我只是说了我的解决思路,但你更重要的是参考成熟的解决方案,比如 lucence(?) 等,呵呵。
陛下 | 老鸟四级 |园豆:3938 | 2008-08-19 21:00
其他回答(2)
0
一般来说,是每次keyup后延时一段时间,看有没有下一次keyup,如果(比如说)1秒的时间内键盘没有动作,则开始作自动提示,回传服务器获取列表
Gray Zhang | 园豆:17610 (专家六级) | 2008-08-19 23:10
0
匹配应采用全文索引的方式匹配,而不是遍历数据库。全文索引采用倒排序索引,检索效率非常高。 你可以尝试使用 lucene + 一个分词组件。
eaglet | 园豆:17139 (专家六级) | 2008-08-20 07:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册