Java テクノロジを使用して構築している Web アプリケーションに検索機能を実装したいと考えています。ユーザーのクエリに応じて、データベースを検索する必要があり、結果が表示されます。これを行うにはどのような方法がありますか (Java テクノロジを使用していることに注意してください)??.ありがとうございます。
2 に答える
これを独自に作成する代わりに、http ://lucene.apache.org/core/やhttp://lucene.apache.org/solr/などの製品を使用できます。
Lucene は、ドキュメント用の高性能検索エンジンです。SOLR は Lucene の上に構築され、追加機能 (ヒットの強調表示、ファセット検索、データベース統合、リッチ ドキュメント (Word、PDF、..) 検索など) を提供します。
Lucene はテキスト データを分析し、インデックスを構築します。検索を実行するときは、このインデックスに対して lucene クエリを実行します。
データベース内のデータの自由なテキスト検索を意味すると仮定すると...
フリーテキスト検索の場合、Lucene や SOLR は非常に優れたソリューションです。これらは、データベース内のデータの個別のインデックスを作成することによって機能します。データベースからデータを取得して Lucene/SOLR を使用してインデックスを作成するか、データベースに書き込むコードを調整して Lucene/SOLR インデックスも更新するかは、ユーザー次第です。あなたが言ったことを考えると、これは既存のデータベースに後付けされているように聞こえるので、データを引き出してインデックスを作成することが最善の解決策かもしれません. この場合、SOLR はパッケージ化されたソリューションであるため、おそらくより適しています。
別のオプションはHibernate Searchです。繰り返しますが、これは、始めている場合に使用するソリューションです。事後に追加するのはもっと難しいでしょう。
また、一部のデータベースは、通常のリレーショナル クエリに加えてフリー テキスト検索をサポートしており、一見の価値があることに注意してください。SQL Server には確かにテキスト検索機能があり、他のデータベースにも何らかのサポートがあると思います。これらにどのようにアクセスするかはよくわかりませんが、JDBC 経由で SQL を使用してアクセスできると思います。ただし、データベース固有である可能性があります。
通常の SQL 検索だけを意味する場合は、Java EE テクノロジ、プレーンな JDBC、Spring テンプレート、ORM テクノロジ (JPA、JDO、Hibernate など) がたくさんあります。リストはまだまだ続きますが、さらに多くの情報がなければ、特定のアプローチを提案することは困難です。