有关“热门搜索”问题

hnahzx 2004-04-01 10:24:06
在电子商务网站中,在搜索框下一般列出了热门搜索关键字,请问各位大侠,这是怎么统计出来的?
举例:http://www.xinhuabookstore.com/
...全文
98 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
elite2018 2004-04-02
  • 打赏
  • 举报
回复
http://it.enorth.com.cn/system/2004/03/26/000757437.shtml
http://www.21cnbj.com/industrynews/native2003/2004-02-27-938.html
elite2018 2004-04-02
  • 打赏
  • 举报
回复
搜索引擎,对于搜索器即收集系统来说,系统的目的是要实现快速、广泛、高质量的信息收集。在系统自动收集的过程中,频繁地发送请求生成动态网页会造成两个方面的副作用:其一,在WWW服务器端引起本系统和其他访问该服务器资源的用户的竞争,给服务器造成较大的系统压力,导致服务器效率急剧下降甚至瘫痪,对其网络造成冲击;其二,很多的动态网页由于程序运行效率不高,加之有时网络情况恶化,从我们发送出Http请求到最终收到服务器结果页面返回,我们经常要等待较长的时间,甚至有可能在系统的超时时间已经到达,我们还不能够得到所需的资源。在这样的情况下,如果系统频繁地为处理动态网页请求所占用,不仅会极大地影响系统对静态网页的收集效率,同时也对网站造成了巨大的压力,使网站其他服务能力大打折扣。
bitsbird 2004-04-02
  • 打赏
  • 举报
回复
搜索器robot技术

凡上网者都用过搜索引擎,Altavista、Infoseek 、Hotbot、网络指南针、北大天网和华好网景的ChinaOK等等,它们的索引数据库涉及Internet上超过1亿的页面(Altavista和Hotbot),北大天网也收集了32万个www页面(国内),索引数据库的建立需要访问这些页面然后进行索引,如何做到对如此多的页面的访问,现在的搜索引擎无论是针对英文还是中文,都是采用网上机器人来实现网上搜索的(Yahoo!是个例外)。

网上机器人  
网上机器人(Robot)又被称作Spider、Worm或Random,核心目的是为获取在Internet上的信息。机器人利用主页中的超文本链接遍历Web,通过URL引用从一个HTML文档爬行到另一个HTML文档。网上机器人收集到的信息可有多种用途,如建立索引、HTML文件的验证、URL链接验证、获取更新信息、站点镜象等。

机器人寻找WWW文档的算法  
机器人要在网上爬行,因此需要建立一个URL列表来记录访问的轨迹。使用的是超文本,指向其它文档的URL是隐藏在文档中,需要从中分析提取URL;机器人一般都用于生成索引数据库。所有WWW的搜索程序都有类似步骤:
1) 机器人从起始URL列表中取出URL并从网上读取其内容; 
2) 从每一个文档中提取某些信息并放入索引数据库中;
3) 从文档中提取指向其它文档的URL,并加入到URL列表中;
4) 重复上述3个步骤,直到再没有新的URL发现或超出了某些限制(时间或磁盘空间);
5) 给索引数据库加上查询接口,向网上用户发布。 
  算法有深度优先和广度优先两种基本的搜索策略。
机器人以URL列表存取的方式决定搜索策略:
1) 先进先出,则形成广度优先搜索。当起始列表包含有大量的Web服务器地址时,广度优先搜索将产生一个很好的初始结果,但很难深入到服务器中去。
2) 先进后出,则形成深度优先搜索。这样能产生较好的文档分布,更容易发现文档的结构,即找到最大数目的交叉引用。

结果处理技术
网页评选的主要因素
搜索引擎应该能够找到与搜索要求相对应的站点,并按其相关程度将搜索结果排序。 这里的相关程度是指搜索关键字在文档中出现的频度,最高为1。当频度越高时,则认为该文档的相关程度越高。但由于目前的搜索引擎还不具备智能,除非你知道要查找的文档的标题,否则排列第一的结果未必是"最好"的结果。所以有些文档尽管相关程度高,但并不一定是用户更需要的文档。
搜索引擎是一个技术含量很高的电脑网络应用系统。它包括网络技术、数据库技术、检索技术、智能技术等等。在这一方面,由于国外的很多先进技术是建立在西文内核的基础上,所以我们还不能单纯引进照搬照抄。作为中文搜索引擎来讲,如何来发挥我们在中文处理上的长处,发展出有我们自己版权的核心技术,使我们在中文搜索引擎的竞争中占有有利地位。

网页评选的四个主要因素:
a. 网页数据库的大小,主要是人工浏览后定的。

b.检索响应的时间,主要是程序里得出的。
程序首先记下访问搜索引擎开始的时间,然后到取得记录后,又记下当时的时间,然后把两个时间减一下就得出了检索响应的时间。

c.网页的质量划分主要也是由人工排定的。
搜索引擎总是要将检索结果返回给用户,而结果显示的好坏直接影响到搜索引擎的使用效果。因此,结果显示的内容组织,如何排序,是否提供足够的相关信息(内码、文件大小、文件日期等),对用户对检索结果的判断具有很大的影响。

d.各个网站的相关度和以下因素有关:各个网站的相关度; 能够区分搜索结果的相关性(Pertinency)。
l 人为的对网站设定一个相关系数,如Yahoo 1.0,Goyoyo 0.94等;
l 链接,Summary中出现的关键词的次数;
l 记录返回时间,即检索响应的时间

结果处理
(1) 按频次排定次序
通常来说,如果一个页面包含了越多的关键词,其搜索目标的相关性应该越好,这是非常合乎常理的解决方案。

(2) 按页面被访问度排序
在这种方法中,搜索引擎会记录它所搜索到的页面被访问的频率。人们访问较多的页面通常应该包含信息比较多,或者有其它吸引人的长处。这种解决方案适合一般的搜索用户,而因为大部分的搜索引擎都不是专业性用户,所以这种方案也比较适合一般搜索器使用。

(3) 进一步净化(refine)结果
按照一定的条件对搜索结果再进行优化,可以再选择类别、相关词等。

bitsbird 2004-04-02
  • 打赏
  • 举报
回复
最重要的是robot的程序

基于Robot的搜索引擎
这种搜索引擎的特点是利用一个称为Robot(也叫做Spider、Web Crawler或Web Wanderer)的程序自动访问Web站点,提取站点上的网页,并根据网页中的链接进一步提取其它网页,或转移到其它站点上。Robot搜集的网页被加入到搜索引擎的数据库中,供用户查询使用。Internet上最早出现的搜索引擎就是利用Robot来建立数据库,"搜索引擎"这个词的原义也只是指这种狭义上的基于Robot的搜索引擎。
基于Robot的搜索引擎由三个主要部分构成:Robot、Index和搜索软件。Robot从一个事先制定好的URLs列表出发,这个列表中的URLs通常是从以往访问记录中提取出来的,特别是一些热门站点和"What's New"网页,从Usenet等地方检索得到的URLs也常被用作起始URLs,此外,很多搜索引擎还接受用户提交的URLs,这些URLs也会被安排在列表中供Robot访问。Robot访问了一个网页后,会对它进行分析,提取出新的URLs,将之加入到访问列表中,如此递归地访问Web。
Robot作为一个程序,可以用C、Perl、Java等语言来编写,可以运行在Unix、Solaris、Windows、NT、OS2和MAC等平台上。Robot设计是否合理将直接影响它访问Web的效率,影响搜索数据库的质量,另外,在设计Robot时还必须考虑它对网络和被访问站点的影响,因为Robot一般都运行在速度快、带宽高的主机上,如果它快速访问一个速度比较慢的目标站点,就有可能会导致该站点出现阻塞甚至当机。Robot还应遵守一些协议,以便被访问站点的管理员能够确定哪些内容能被访问,哪些不能。
Index是一个庞大的数据库,Robot提取的网页将被放入到Index中以便建立索引,不同的搜索引擎会采取不同方式来建立索引,有的对整个HTML文件的所有单词都建立索引,有的只分析HTML文件的标题或前几段内容,还有的能处理HTML文件中的META标记或其它不可见的特殊标记。
基于Robot的搜索引擎一般要定期访问大多数以前搜集的网页,刷新Index,以反映出网页的更新情况,去除一些死链接,网页的部分内容和变化情况将会反映到用户查询的结果中,这是基于Robot的搜索引擎的一个重要特征。
Index在建立索引时,一般会给网页中每个关键词赋予一个等级值,表示该网页与关键词之间的符合程度。当用户查询一个关键词时,搜索软件将搜索Index,找出所有与关键词相符合的网页,有时候这些网页可能有成千上万,等级值的用途就是作为一种排序的依据,搜索软件将按照等级值从高到低的顺序把搜索结果送回到用户的浏览器中。

bitsbird 2004-04-01
  • 打赏
  • 举报
回复
我是这样想的,用户点击搜索时,把搜索内容储存到数据库表里,再搜索同样内容时,数据库表里那个内容的计数count就增加1,然后select top 20 count order by desc from 表,这是我的想法,具体来说,从sql算法上应该高明的很多
hnahzx 2004-04-01
  • 打赏
  • 举报
回复
自己顶!
bitsbird 2004-04-01
  • 打赏
  • 举报
回复
up,我在去看看书
hnahzx 2004-04-01
  • 打赏
  • 举报
回复
谢谢bitsbird,你帮过我几次了:)
我开始也这样想,但看到许多网站商店的热门搜索关键字都是可以搜索到结果的,也就是有产品的某个字段(比如书名或作者名)包含了该关键字。我觉得用户点击搜索时,把搜索内容储存到数据库表里时,应当排除掉那些不能搜索到结果的关键字,再将关键字放入数据库中,这样也可以减少很多不必要的数据存放。
但这样的话,还有一个问题。因为一般使用多字段模糊查询,比如三个词空格格开放入文本框中去查询,查询到了结果,但key1,key2,key3中可能就是key2被产品的某个字段包含,key1,key3没有用。所以我只要key2存入数据库。怎么弄?
我对sql不在行,盼大侠们写出sql语句,我会快速结帖的。
谢谢!!!

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧