2013-05-18 13 views
49

Luceneのような、node.jsアプリケーション用のオープンソース(LGPLまたは許可ライセンス付き)インデックスエンジンを探しています。私はインプロセスインデックス作成と検索を探していますが、SphinxやSolrのようなインデックスサーバーには興味がありません。Node.jsのインデックス作成/検索エンジンはありますか?

私はC/C++ライブラリ用のバインディングを作成することを恐れていませんので、私はこれらの提案も公開しています。

これまでのところ、私はCLuceneのために私自身のバインディングを作成することができます積極的にもはや維持(およびいくつかの未解決の問題を持っている)していないよう

  • ノード-clucene
  • を見つけましたしかし、それはかなりまばらに維持されているようで、現在のバージョンもJava Luceneのかなり後ろにあります。
  • Apache Lucy dのバインディングを作成する目的で設計されているようですynamic言語を使用していますが、これまでのところノードバインディング(C API)はなく、バインディング作成に関するドキュメントは見つかりませんでした。私はまた、そのパフォーマンスに関するベンチマークも見つけられませんでした。
  • ノード-検索まだプロトタイプであるように思われ
  • jsiiを放棄しているように見えるとも唯一のWeb broswerに
  • を実行することを目的と
  • fullproofを放棄していますlunr.jsインデックス全体をシリアライズするだけのようですが、スケーラブルではありません

私は "私自身の "ロールが、私はすでに既存のソリューションを使用することを好むだろう。

私はスタンドアロンインデックスサーバーに興味がありません:私は高速インプロセスのキー値ストアデータベースを使用していますので、クエリ処理のために外出する必要があります。

答えて

11

なぜ外部インデックスを使用したくないのか説明できますか?フルテキスト検索の場合、私はいつもPostgreSQLの全文索引作成機能を使用することに戻します。これは非常に高速で、索引付けは完全索引更新(Solrのように)を必要とせず、結果はLuceneベースのソリューション(Elastic Search )。

しかし、実際に処理したい場合は、Lunr:http://lunrjs.com/を参照してください。これは、ブラウザだけでなく、ノードでも機能します。

編集:私はPostgresは速くLuceneのよりであることに私の統計情報を得たのはここです:http://fr.slideshare.net/billkarwin/full-text-search-in-postgresql - スライド参照49.

編集:あなたが見ているの速度の種類を確認しないためで/プロセスのうち、しかし、私たちのPostgreSQLデータベースは、汗をかくことなく秒間に100kクエリを実行でき、SSD上でさえもありません。たぶん、複数のノードに移動する(またはすべてのCPUを利用するためにクラスタを使用する)必要が生じた後は、インプロセスでダンプする必要があります。

+1

"となり、結果はLuceneベースのソリューション(Elastic Searchなど)よりも速く返されます。それを裏付けるベンチマークはどれですか?私は、ほとんどのレビューがそれ以外の方法でそれを持っていることはほぼ確実です。 –

+0

私はその速度のために非常に速い、進行中のデータベースを使います。したがって、アウトプロセスインデックスを持つと、それは非常にばかげているでしょう。 – Venemo

+1

私はlunrを見ましたが、現在はインデックス全体を常にシリアライズしなくてもインデックスの永続化をサポートしていません。 – Venemo

12

はい、新しくリリースされたNorch

NorchはGoogleの強力なlevelDBインデックスに基づいて順番にあるNode.jsのためのsearch-indexのモジュールに基づいており、チェックしてください。

EDIT:速い「インプロセス」検索機能のためにsearch-index moduleを使用してください。

+0

'Norch'は' search-index'の上に何を追加しますか? – Venemo

+0

Norchは検索インデックスをHTTP上で利用可能にし、他にもいくつかのGUIを追加します。 – Fergie

+1

質問を読んでください*私はインプロセスのインデックス作成と検索を探していて、インデックスサーバーに興味がないと言っています* – Venemo

15

私の答えにちょうど更新しました。このアップデートが失われることを望んでいなかったので、多くの議論がありました。あなたがここにそれをダウンロードすることができ

https://github.com/fergiemcdowall/norch

+0

短い答え:いいえ。長い答え:文書の関連性に関する飼料を分類し、所有者に決定的な関連性を簡単かつ強力に制御します。最長の答え:Forageは抽象フィールドのソートをサポートしていませんでした。なぜなら、これはプロジェクトの中核範囲外であるとみなされていたからです。しかし、将来的には、ソート機能の追加が予定されているため、ある時点で追加される可能性があります。 – Fergie

+0

文書の関連性をどのように計算しますか? – Venemo

+0

うわー、そこに@ user2020565! Forageは複数のプロセスから完全にアクセス可能です:) – Fergie

関連する問題