web-dev-qa-db-ja.com

検索エンジンLuceneとデータベース検索

MySQLデータベースを使用しており、データベース駆動型検索を使用しています。データベースエンジンとLucene検索エンジンの利点と欠点はありますか?それらをいつ、どこで使用するかについての提案を希望しますか?

38
Santosh Linkha

全文検索エンジンvs DBMS をお勧めします。ワンライナーは次のようになります。ユースケースの大部分が全文検索の場合は、Luceneを使用します。ユースケースの大部分が結合やその他のリレーショナル操作である場合は、データベースを使用してください。より複雑なユースケースでは、ハイブリッドソリューションを使用できます。

30
Yuval F

テキストDocuments(任意の長さ)にインデックスを付け、Textこれらのドキュメント内で、検索クエリに一致したドキュメントのランク付きリストを返します。 古典的な例は、Luceneなどのテキストインデクサーを使用してWebページのコンテンツにインデックスを付けてクエリを実行するGoogleなどの検索エンジンです。

MysqlのようなデータベースよりもLuceneを使用した場合のテキストのインデックス作成と検索には、次の利点があります。

  • 開発者向け-複数の言語でテキスト情報(ステミング、複数形、同義語、トークン化など)を分析、解析、および索引付けするためのツール。 Luceneは、テキスト検索にも非常に適しています。
  • for the user-質の高い検索結果。 Luceneは非常に優れた 類似度関数 (検索クエリを各ドキュメントと比較するため)を使用します。その中心はコサイン類似度と逆項/ドキュメント頻度です。これにより、事前に微調整がほとんど必要ない、優れた検索結果が得られます。

たくさんの Luceneに関する有用な情報はこちら

25
Joel

SQL Serverを使用して、フルテキスト検索を使用するクエリをいくつか作成しました。大量のデータが存在する場合、SQLはFullText検索で返された結果セットと残りのクエリを内部結合します。これは、データベースが低電力のマシンで実行されている場合は遅くなる可能性があります(20 GBのデータに対して2 GBのRAM)。同じクエリをLuceneに切り替えると、速度が大幅に向上しました。

2
Eugeniu Torica

Lucene検索には、索引付けの利点があります。 これ 投稿はルセンの理解に役立ちます。

1
Harry Joy