2

ヘルプ ページに、ヘルプ データベースを検索して関連する結果を返すライブ検索があります。より多くのドキュメントが必要なものを判断する良い方法は、結果を返さない検索をデータベースに記録することだと思います。

通常、これは非常に簡単ですが、ライブ検索であるという事実により、少し難しくなっています。

したがって、誰かが検索すると:

  • この検索で​​は結果が返されません。

これはライブ検索であるため、次の検索を取得します。

  • これは
  • この検索 r
  • この検索は n を返します
  • この検索で​​は結果が返されません。

明らかに、パーシャルではなくフレーズ全体をログに記録できれば最高です。

したがって、今のところ、すべての検索を次のようなテーブルにダンプする方法: (id int, search_string text, count int)

私が考えることができる唯一の方法は、

  • テーブルに新しい行を追加する前に、テーブル内の検索に対して検索文字列の類似検索を行い、一致する場合はカウントを挿入またはインクリメントしません。ただし、このテーブルは非常に大きくなり、同様のクエリは非常に遅くなると思います。

  • 入力値が 2 秒以内に変更されなかった場合の JavaScript を記述し、失敗した場合にログに記録するように指示するフラグを付けて特別なライブ検索を送信します。

これを処理するためのより良い方法があるに違いないと私には思えますが、私は何かをブランクにしています。何か案は?

4

1 に答える 1

0

私はあなたがすべきことは候補の「逃した」検索の一時的な(毎日、おそらく、またはより速いフィードバックが必要な場合は毎時)テーブルを使用することだと思っています。テーブルの存続期間の終わりに、他の失敗した検索または成功した検索のプレフィックスである検索が無視されるように、テーブルは後処理されます。残りは「実際の」失敗した検索のテーブルに入ります。

于 2008-12-18T23:40:41.393 に答える