7

私は、データベースに対するより良い検索機能のためのメカニズムを調べています。これは現在、大きなボトルネックになっています(データベースのパフォーマンスを低下させる長期的なクエリを引き起こします)。

上司は私にSolrを調べてほしいと思っていましたが、詳しく調べてみると、実際にはLucene自体との何らかのDB統合メカニズムが必要なようです。

Lucene FAQから、Hibernate SearchCompass、およびDBSightを推奨しています。

現在のテクノロジースタックの背景として、TomcatでストレートJSPを使用しており、Hibernateは使用せず、その上に他のフレームワークは使用していません... DB2データベースに対してストレートJava、JSP、およびJDBCを使用しています。

それを考えると、Hibernate Searchをシステムに統合するのは少し難しいかもしれませんが、そのような統合の後にHibernateを使用するオプションがあると便利かもしれません。

適切なツールを選択するのに役立つ可能性のある、これらのツールの1つ(または他の同様のLuceneベースのソリューション)を使用して共有できる経験はありますか?

これはFOSSソリューションである必要があり、理想的には、変更が行われたときにツールに通知するための余分な労力なしに、データベースからの変更でLuceneの更新を自動的に(効率的に)管理します(そうでない場合は、独自のLuceneソリューションをロールするだけでよいようです)良い)。また、1つのデータベース(+フェイルオーバー)を備えた複数のアプリケーションサーバーがあるため、すべてのアプリケーションサーバーのソリューションをシームレスに使用するのが簡単であると便利です。

私は現在も選択肢を検討し続けていますが、他の人の経験を活用することは本当に役に立ちます。

4

5 に答える 5

3

「DB に対して検索する」とはどういう意味ですか?

リレーショナル データベースと情報検索システムは、正当な理由から非常に異なるアプローチを使用します。どのようなデータを検索していますか? どのようなクエリを実行しますか?

DirectoryCompass のように、データベースの上に逆インデックスを実装する場合、BLOB を使用して Lucene の抽象化を実装するという彼らのアプローチは使用しません。むしろ、Lucene のIndexReader抽象化を実装します。

リレーショナル データベースは、インデックスを維持する能力が非常に高いです。このコンテキストで Lucene がもたらす価値は、非構造化テキスト レコードに最も役立つ分析機能です。優れたアプローチは、各ツールの長所を活用することです。

インデックスが更新されると、Lucene はより多くのセグメント (追加のファイルまたは BLOB) を作成します。これにより、コストのかかる「最適化」手順が使用されるまでパフォーマンスが低下します。ほとんどのデータベースでは、インデックスの更新ごとにこのコストが償却されるため、より安定したパフォーマンスが得られます。

于 2008-09-18T20:29:38.893 に答える
2

私はコンパスで良い経験をしました。Hibernateとの統合が非常に優れており、Hibernateおよびjdbcを介して行われたデータ変更をGPSデバイスhttp://www.compass-project.org/docs/1.2.2/reference/html/gps-を介してLuceneインデックスに直接ミラーリングできます。 jdbc.html

すべてのアプリケーションサーバーでLuceneインデックスを維持することが問題になる場合があります。複数のアプリケーションサーバーがデータベースを更新している場合、インデックスをすべての変更と同期させることでいくつかの問題が発生する可能性があります。コンパスには、これを処理するための代替メカニズムがある可能性があります。

Alfresco Project(CMS)もLuceneを使用しており、これらの問題の処理に役立つ可能性のあるサーバー間でLuceneインデックスの変更を複製するメカニズムを備えています。

Hibernate Searchが実際に使用できるようになる前に、Compassを使い始めたので、比較することはできません。

于 2008-09-17T21:37:24.823 に答える
1

LuSql http://code.google.com/p/lusql/を使用すると、JDBCでアクセス可能なデータベースのコンテンツをLuceneにロードして、検索可能にすることができます。高度に最適化され、マルチスレッド化されています。私はLuSqlの作者であり、来月には新しいバージョン(新しいプラグイン可能なアーキテクチャで再構築されたもの)をリリースする予定です。

于 2010-09-14T16:51:22.207 に答える
0

そうですね、DBSightはFOSS要件を満たしていないようです。したがって、それが完全に優れたソリューションでない限り、現時点ではオプションではありません...

于 2008-09-17T19:19:47.573 に答える
0

Lucene を検索して純粋にパフォーマンスを向上させるには、確かに大いに役立ちます。あなたが気にかけている/必要なものだけをインデックス化してください。必要に応じて Hibernate またはその他の部分を使用できますが、必須ではないと思います。

于 2008-09-17T19:07:38.570 に答える