短縮版
データベース内の任意のオブジェクト セット内で全文検索を効率的に実行したいと考えています。すべてのオブジェクトは検索エンジンで索引付けされます。
私の考え
これを2部構成にする予定です。最初に、検索エンジンは、全文検索に一致する加重/ソートされた一連の ID を照会されます。この一連の ID はフィルター処理され、ユーザーの元のセットにない ID はすべて削除されます。
これを行うより良い方法はありますか?そうでない場合は、これを効率的に行うためのアドバイスを提供できますか?
ロングバージョン
私は、ユーザーが高度にリンクされたデータのセットを視覚化し、これらの視覚化を操作して、さらなる分析のために興味深い頂点のセットを導出できるようにする Web アプリケーションを構築する計画段階にいます。ユーザーが GUI を介して実行するフィルタリング アクションは複雑であり、インデックス可能な数量として表現するのは非常に困難です。
ユーザーがこれらのデータ セット内の結果に対して全文検索を実行できるようにしたいと考えています。Google が結果セット内の検索に対して行っていることを見ると、以前の検索クエリを新しいクエリに単純に追加して「検索範囲」を有効にするという Google のアプローチは、私のデータには適していない可能性があります。
この質問に対する受け入れられた答えは、データベース操作を使用して検索エンジンからの結果をフィルタリングするという考えを促進します。
解決策の一部として、ユーザーが検索したい頂点のセットがフロントエンドで処理できるほど小さくなったときに、フロントエンドをlunrの使用に切り替えることも検討しています。この制限が何であるかを理解するには、いくつかのテストが必要ですが、数千になるとは思えないため、サーバー側のソリューションの必要性は残ります.
環境の詳細
appengine で python 2.7 を実行しています。
このアプリケーションでは、最初の結果セット (検索対象) に 10 ~ 2000 個の頂点が含まれると予想しています。データベース全体の頂点の総数は、数桁大きくなる可能性があります。