当有人使用快速搜索功能搜索我的网站时,我想将其记录到我的数据库中
目前我有一个表searchterms
,其中有两个字段:id
和terms
,我想知道这是否是记录此信息的最佳方法。然而,Terms
变得有点多余。
相关脚本的任何线索或链接?
谢谢你们
答案 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。优点是它可以减轻服务器上的负载。
也许不是你想要的,但值得一提。