记录实时搜索未命中

时间:2008-12-18 23:16:26

标签: mysql logging livesearch

我在帮助页面上进行实时搜索,搜索我们的帮助数据库并返回相关结果。我认为这是一个很好的方法来决定什么需要更多的文档来记录搜索结果没有返回到我们的数据库。

通常情况下,这很简单,但事实上它是一个实时搜索,这使它变得有点棘手。

所以当有人搜索:

  • 此搜索不会返回任何结果。

因为它是实时搜索,我们会搜索:

  • 这是
  • 此搜索r
  • 此搜索返回n
  • 此搜索不会返回任何结果。

显然,如果我们只记录完整的短语而不是部分短语,那将是最好的。

所以现在我只是将所有搜索转储到一个看起来像这样的表中: (id int,search_string text,count int)

我能想到的唯一方法可能会有所帮助

  • 在我们向表中添加新行之前,请执行类似于搜索表中搜索的搜索字符串,以及匹配时是否插入或增加计数。但是,我希望这个表会变得非常大,像这样的查询会变得很慢。

  • 写一些javascript,如果输入值在2秒内没有改变,请发送一个特殊的实时搜索,并带有一个标记,如果它是一个未命中的话就会记录它。

在我看来,必须有一个更好的方法来处理这个,但我在任何事情上都有空白。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我在想你应该做的是使用一个临时的(每天,或许,或每小时,如果你需要更快的反馈)候选人'错过'搜索表。在表的生命周期结束时,对其进行后处理,以便忽略作为其他错过的搜索或成功搜索的前缀的任何搜索。其余的进入“真正的”错过搜索表。