データベースのみのソリューションの利点:
- セットアップとメンテナンスが少ない (データベースは既にある)
- 検索結果を他のデータと結合したり、その他の方法で操作したい場合は、データベースでネイティブに行うことができます
- タイム ラグ (Solr をデータベースと定期的に同期する場合) またはメンテナンス手順 (Solr のエントリをデータベースに挿入するたびにリアルタイムで追加/更新することを選択した場合) はありません。
Solr ソリューションの長所:
- パフォーマンス: Solr はキャッシングを処理し、すぐに使用できます。
- スペル チェック - スペル チェック タイプのものを実行する予定がある場合、Solr はこれをネイティブに処理します
- Solr のセットアップとチューニングはそれほど難しくありませんが、Java アプリケーション サーバーに精通している場合は役に立ちます。
- 単純な要件があるように見えますが、単語の検索に関して何らかのロジックを持っていると思います。Solrはこれを非常にうまく行います
また、将来の要件を検討することもできます (ドキュメントにタイトル フィールド以外のものがあり、何らかの関連性を割り当てたい場合はどうしますか? これらのエンティティの本文テキストを検索できるようにする場合や、および/またはたとえば、MS Word などの他の種類のドキュメントのインデックスを作成したい場合や、検索結果をファセット処理したい場合はどうすればよいでしょうか? Solr はこれらすべてに適しています)。
データベース内のすべての単語に対してエントリを作成する必要があるかどうかはわかりませんが、とにかく各単語でレコードを作成する場合は、単に '%[query_word]%' 検索を行う必要があります。要件は非常に単純に見えるため、最初はデータベースを使用する方が簡単かもしれません。データベースのパフォーマンスをスケーリングするのはかなり簡単です。
私たちは現場でSolrを使用しており、パフォーマンスが気に入っていて、非常に単純な検索にも使用しています. ただし、1 つ欠けているのは、Solr データとデータベース データを結合する方法です。そして、余分なメンテナンスがあります。結局のところ、簡単な答えはありません。