【问题标题】:How would I log searches on my PHP/MySQL website?如何在我的 PHP/MySQL 网站上记录搜索?
【发布时间】:2010-11-14 04:42:34
【问题描述】:

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

  1. 显然我想看看我的用户在搜索什么
  2. 我可以根据这些搜索创建一个“标签云”

我现在有一个表searchterms 有两个字段:idterms,我想知道这是否是记录此信息的最佳方法。不过Terms 有点多余了。

有相关脚本的线索或链接吗?

谢谢大家

【问题讨论】:

  • 两个有用的答案,但我会先查看谷歌分析。我会尽一切努力减少服务器负载!

标签: php mysql search logging search-engine


【解决方案1】:

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

需要注意的是,这都是 javascript。好处是可以减轻服务器的负载。

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

【讨论】:

    【解决方案2】:

    存储术语的表(可能以某种“标准化”方式,如所有小写字母,没有重音符号,...),以及在搜索这些术语时存储另一个表如何?

    规范化是为了避免“单词”和“单词”被视为两个不同的术语;顺便说一句,“é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”,它总结了一个术语被搜索的次数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-22
      • 2011-10-24
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多