2011-01-09 18 views

答えて

26

Full Text Search Engines vs. DBMSを読むことをお勧めします。 1つのライナーは次のようになります:ユースケースの大半がフルテキスト検索の場合、Luceneを使用します。ユースケースの大部分が結合やその他のリレーショナル操作である場合は、データベースを使用します。もっと複雑なユースケースには、ハイブリッドソリューションを使用できます。

+0

私は多くのサイトで「私たちのサイトを検索」しています。私がサイトのコンテンツを検索するのであれば、どれが良いでしょうか? –

+1

サイトの検索はフルテキスト検索です。したがって、Luceneが優れています。より良いことに、Solrを使用してください:http://lucene.apache.org/solr/ –

+0

@YuvalFデータベースが大きくなく、そのサイトのユーザーがそれほど多くない場合、DBMSベースのフルテキストクエリは十分ですか?時にはその人がルーゼンを使いたいと思っているので、彼自身でそれを開発しなければならないからです... – hugemeow

1

Lucene検索には索引付けの利点があります。 Thisポストはluceneの理解に役立ちます。

+0

私はデータベーステーブルにインデックスを追加することもできると思います。しかし、私はそれが何であるかの手がかりを持っていないのですか? –

18

(任意の長さの)使用のLuceneあなたは、インデックス、テキストにしたいドキュメントと検索クエリと一致した文書のランク付けリストを返し、それらの文書内のテキストを検索します。 古典的な例は、Googleのような検索エンジンであり、Luceneのようなテキストインデクサーを使用してウェブページのコンテンツを索引付けして照会します。テキストをインデックス化するためには、MySQLなどのデータベース上のLuceneを使用して検索する

利点は以下のとおりです。開発者ため

  • - 、分析指標のテキスト情報を解析し、するためのツール(例えばステミング、複数形、シノニム、トークン化)を複数の言語でサポートします。 Luceneもテキスト検索のために非常に優れています。
  • - 質の高い検索結果。 Luceneは非常に良いsimilarity function(各文書に対する検索クエリを比較するために)を使用していますが、その中心にはCosine SimilarityとInverse Term/Documentの頻度があります。この結果、良い検索結果が得られます。

多くのuseful info on Lucene here

+0

には、Luceneの他の利点があります。 Opensource or proprietor(有料またはREST API) –

2

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