2012-03-23 4 views
2

最近、多面的な検索がよく見られますが、そのアルゴリズムは何ですか。大きなデータセットの中で面白い検索はどのように高速に行われますか?ファセット検索のアルゴリズムとは何ですか?

私は任意のヒントや手がかりは要するに歓迎

+1

あなたは正確にあなたが「ファセット検索」によって意味ですか何にいくつかの追加情報を提供するだろうか?これは多くのことを意味する可能性があります。あなたは私たちに例を与えてもいいですか?アプリケーションのユーザーを検索する方法と方法は? – bpgergo

+0

Luceneの上でのファセット検索のSolrの実装を見てください。サーバー管理者は、どのフィールドを決定するかを決定するフラグを設定し、そのフィールドにどの用語が現れるかに基づいてファセット検索を構築します。エミュレートを検討する価値があるかもしれません。 – FloppyDisk

答えて

2

あるので、自分でファセット検索を実装するつもりです:あなたは、いくつかのインデックスを作成して、例えば1つはテキスト用、1つは日付用、もう1つはジオロケーション用、もう1つは数字用などです。索引にドキュメントを追加するときは、それが持つ各フィールドの索引付け方法を定義します。

通常、文書を取り出すには、いくつかの索引(半径100km、価格範囲50-100の単語「靴」を持つ製品)から結果(文書ID)を渡す必要があります。

これを巨大なデータセットに拡大するには、通常、シャーディングというテクニックを使用します。各サーバーはN個のドキュメントのインデックスデータを保持し、一度にすべてのインデックスサーバーにクエリを送信します。彼らはそれぞれトップのXの結果を返し、それらを並べ替えて統一されたトップXの結果を得ます。

これがあなたが探していた方向であることを希望します。

関連する問題