2011-07-16 6 views
0

ディレクトリに格納されたドキュメントを検索する機能を追加したいとします。バックエンドはPythonで開発され、検索結果をさらに操作します。ドキュメントは専用のWebサーバーに保存されます。(フォーマットされた)10000の文書をPythonで扱うための最適なテキストインデクサー

確立された技術(Lucene、Xapian、Whoosh)は成熟したPythonバインディングを持っています。私の同僚は、クライアントのためにApache、Lucene、PHPをセットアップしました。 I は、Pythonで書かれているため、Whooshを選択しますが、パフォーマンスが低く、「機能X」がないことのレビューで怖いです。

私の特定の要件は、次のとおりです。

サポートは、(私の爪をかむなります)

    もPythonのでサポート
  • 主要なホストの技術サポートは、簡単に
  • スケールを、それを設定することができますうまく100000文書まで
  • 4つの新しいファイルのインデックスを更新すると、私たちの専用サーバーが遅くなりません

特長(私はここで初心者くさいよ)

  • 私は自分自身
  • で操作できる形式のデータが強調表示されたテキストを返すことができるリターンは特定のファイルのために
  • 高い優先順位をスニペットとタイトルまたは太字の単語

答えて

1

SolrはJavaで書かれていても驚くほど強力な検索エンジンです。

ハイライト、重量、新しいアイテムを比較的速くインデックスに挿入する機能、オートコンプリートのような機能を提供する機能など、必要なものがすべてそろっています。

これは、json/xml /その他のレスポンスmethondsを持ち、Pythonではかなり良い方法で検索エンジンを使用しています。

1

Sphinxは、これは、ほとんどのプログラマが一度に触れたインターフェイスであるMySQLストレージエンジンを介して動作します。もしあなたが既にMySQLにデータを持っているのであれば、データを些細なことで一緒に掘り下げることができます。 Django-sphinxは、かなり成熟した使い方が簡単でスフィンクスとやりとりする手段の一例です。

私は高負荷のトラフィックの多い状況でそれを使用しているため、パフォーマンスが優れていることがわかりました。私が今までに必要と思ったすべてのセマンティクス/機能をサポートしています。

Luceneは、LuceneとのRESTインターフェイスであるSolrでより耐えられるようにすることができます。ネイティブのバインディングは、検索エンジンとのやりとりに慣れていない人にとって、秘密裏になるかもしれません。