我如何在我的PHP / MySQL网站上记录搜索?

时间:2009-07-26 19:39:27

标签: php mysql search logging search-engine

当有人使用快速搜索功能搜索我的网站时,我想将其记录到我的数据库中

  1. 显然我想查看用户搜索的内容
  2. 我可以根据这些搜索创建“标签云”
  3. 目前我有一个表searchterms,其中有两个字段:idterms,我想知道这是否是记录此信息的最佳方法。然而,Terms变得有点多余。

    相关脚本的任何线索或链接?

    谢谢你们

2 个答案:

答案 0 :(得分:3)

用于存储术语的表(可能以某种“规范化”方式,如全部小写,无重音符号......),以及在搜索这些术语时存储的另一个表?

规范化的事情是避免“Word”和“word”被视为你的两个不同的术语;同样适用于“éléphant”和“elephant”,顺便说一下。

terms
  - id
  - word

terms_searched
  #id _term
  - time_search

然后,知道最后搜索的术语或搜索次数最多的术语只是一个简单的SQL查询问题,比如

select id, term, count(*)
from terms
    inner join terms_searched on terms_searched.id_term = terms.id

也许用where子句指定你只想要考虑最近的搜索?

如果你的表变得非常大并且查询中的连接开始损害性能,你可以设想非规范化,在术语表中加上“num_times_searched”,总结一个术语被搜索的次数

答案 1 :(得分:3)

我没试过,但谷歌分析提供了跟踪用户在搜索框中输入内容的选项。用于显示开发人员API。

需要注意的是,这一切都是javascript。优点是它可以减轻服务器上的负载。

也许不是你想要的,但值得一提。