私はSolrに比較的慣れていないので、それが自分のタスクに適したツールであるかどうか(そして、そうである場合はどのように使用するか)を判断するための支援が必要です。
いくつかのリソースタイプを持つエンティティがいくつかあり、ユーザーが十分な空きリソースを持つエンティティを見つける必要があるというユースケースがあります。抽象度を下げるために、いくつかのレンタカー会社といくつかの車種(SUV、マイクロバス、トラックなど)があるとします。会社/車種/日の組み合わせごとに、利用可能な車の数を追跡します。ユーザーは特定の期間に数台の車を借りたいと考えており、どの会社がその要求を満たすことができるかを見つける必要があります。
検索には他にもSolrがよく一致していると思われる側面があります(各エンティティには多数のプロパティがあり、会社の場所、価格、グリーンレンタルポリシーの存在などがあり、範囲フィルターとファセット検索を使用して検索可能である必要があります) 、およびユーザーのフィードバックスコアに基づいてソートされているため)、リソース割り当ての側面をSolrに組み込むことができれば便利です。それは可能ですか?どういうわけか悪い考えですか?タスクにより適したツールをお勧めできますか?
Solrのドキュメントを閲覧した後、私はこのスキームを思いつきました。
- 会社は文書です
- 毎日/車の種類の組み合わせは、その会社の特定の日に、特定の種類の無料の車の数を保持する動的なフィールドです。
- その場合、条件は次のような用語で構成される巨大なブール式になります。
field_<car_type>_<day>:[<required_number> TO *]
私はいくつかの理由でそれについて確信が持てません:
- 何千ものフィールドが必要になります-それはパフォーマンスの問題を引き起こす可能性がありますか?
- 私が理解しているように、Solrは範囲クエリを多数の等価性チェックにアンパックしてOR処理するため、クエリには数千の用語が含まれることになります。これもパフォーマンスの問題を引き起こす可能性がありますか?
- フィールド値は、ユーザーが予約を行うたびに変更されます。私が理解しているように、これはインデックスの再作成を強制しますが、これは遅いので、上記と同じ質問です。
この問題を処理する方法(たとえば、使用する他の検索ツール、またはSolrが予約チェックを行ったカスタムコードと対話する方法)についてのアドバイスをいただければ幸いです。