ユーザーのコレクションがあります。各ユーザーにはいくつかのフィールドがあります。それらのフィールドの1つは、次のようなマップです。魔女の「キー、値」値は順序を表します。
例えば:
user1
もっている:
id = user1
tags = <apples, 100>, <bananas, 80>, <oranges, 60>
name = "Ann Miller"
likes = "apples and skydiving, and sometimes solving puzzles"
quote = "Never spent a day without a smile!"
user2
もっている:
id = user2
tags = <bananas, 100>, <pears, 80>, <apples, 60>
name = "Mike Anderson"
likes = "sleep and eating pizza"
quote = "Math, it's a puzzle to me. I love figuring out puzzles."
次のようなユーザーを返す一般的な検索が必要です。
search | result order
--------+--------------------
smile | user1
puzzle | user2, user1
bananas | user2, user1
apples | user1, user2
現在、私は魔女に一般的なファイルを提出しており、各フィールドの値をコピーしてから、そのフィールドを検索します。今はペアのキーだけを入れているので、順序は私が望むものではありません。
SolrJを使用して、(データベースから抽出された)ドキュメントのインデックスを作成し、検索します。
リンゴは100回、バナナは80回などの言葉を繰り返すことを考えましたが、それは非常に遅く、痛々しいほど遅いと思います(それを作るのに良い方法ではないことを除けば)。
何か考えがありますか?