2

我的帮助页面上有一个实时搜索,它搜索我们的帮助数据库并返回相关结果。我认为确定需要更多文档的一个好方法是记录不向我们的数据库返回结果的搜索。

通常,这会非常简单,但它是实时搜索这一事实使它变得更加棘手。

所以当有人搜索:

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

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

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

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

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

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

  • 在我们向表中添加新行之前,针对表中的搜索对搜索字符串进行类似搜索,如果有匹配项,则不要插入或增加计数。但是,我希望这张表会变得非常大,这样的类似查询会变得非常慢。

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

在我看来,必须有更好的方法来处理这个问题,但我对任何事情都一无所知。有任何想法吗?

4

1 回答 1

0

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

于 2008-12-18T23:40:41.393 回答