2012-02-07 20 views
4

Pythonをサポートする全文検索エンジンの提案を手伝ってもらえますか?全文検索とPython

現在、私たちはMySQLデータベースを用意しており、このデータベースの一部のテーブルのテキストの一部に全文検索エンジンインデックスを付ける機能を追加したいと思います。このテキストデータは、データベース内の対応するレコードを検索するためにWebアプリケーションによって使用されます。たとえば、顧客テーブルの顧客名情報にインデックスを付けると、顧客のMySQLレコードを取得するためにWebアプリケーションで全文検索が行われます。

私はLuceneの、パッ-EとMongoDBの、およびいくつかの他に(簡単に)見てきたが、私は考える私のために良い選択となるのかわからないんだけど、物事のカップル:

  • 私はJavaの人ではありません(私はずっとプログラミングしていますが)。
  • 比較的小さいデータセットを検索したいだけです。
  • MySQLデータベースのテキストを索引付けすることを検討しています。
  • であり、そのインデックスを準リアルタイムで更新したいと考えています。

ヒント、ヒント、またはポインタがあれば幸いです。

+0

あなたはhttps://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html btwを見ましたか? –

+0

私はMySQLのフルテキスト検索を見てきましたが、私たちのすべてのテーブルはフルテキスト検索をサポートしていないINNODB形式になっているので、それはうまくいきません。 –

+0

テキストを別のMyISAMテーブルに保存するのはどうですか? –

答えて

3

Whooshをご覧ください。私はそれがひどくうまくスケールアップされていないと聞いたことがありますが(今はこれが修正されているかもしれません)、小さなコレクションの場合は役に立つかもしれません。

スケーラブルなソリューションの場合は、PyLuceneまたはJythonでLuceneを使用することを検討してください。

+1

Whooshで始めることに同意します。私は自分のブックマークアプリ(Bookie)のためにそれを使用し、それは問題なしで20k ishウェブページの完全なウェブページをやっている。私が集めることができることから、何十万もの文書を叩くまではうまいですし、その後は私たちのソルとルーケンをチェックする時です。 – Rick

+0

私はWhooshについて聞いていないが、それを見て、感謝! –

0

ビルルコールは数ヶ月前に私が持っていた最も苦痛な経験の一つでした。建設が難しい場合、プロジェクトはIMHOを引きつけることはありません。

私たちは、同じかゆみを感じる人がいますが、いくつかのオペレーティングシステム、Pythonバージョン、およびJavaランタイムコンボでprebuilt pyluceneとjcc eggを収集するためにhttps://code.google.com/a/apache-extras.org/p/pylucene-extra/を開始しました。最近はあまり活発ではありません。

Whooshはよくフィットしているかもしれません。SphinxElasticSearch、またはHaystackSearch(注意:私はこれらのいずれでも動作しませんでした)をご覧になりたいかもしれません。

または、pythonを使用するよりはるかに簡単かもしれないpython(いくつかのAPIがあります)経由でSolrにアクセスしてみてください。もちろん、luceneにはJVMが必要です。

スケーラビリティのニーズがあまりないため、パフォーマンスと規模ではなく、簡単な使用方法とコミュニティのサポートに焦点を当てます。それが役に立てば幸い。

+0

これは、私がpyluceneについて心配していることです。私はJavaの人ではないので、ビルドプロセスについて何も知らないのです。私はあなたが言及した他のものを見て、感謝! –

0

SolrはLuceneの素晴らしいラッパーであり、物事を大幅に簡素化します。ほとんどの場合、Javaの修正を必要とせず、XMLファイルをいくつか設定するだけです。別のプロセスとして実行されるため、展開が複雑になる可能性があります。

pysolrで素晴らしい結果が得られましたが、実際にはSolrがRESTを使用しているため、独自のPython通信ライブラリを作成できます。したがって、xmlまたはjsonのいずれかでデータを送受信するのは簡単です。