私は、Luceneのような、node.jsアプリケーション用の優れたオープンソース(LGPLまたは許容ライセンス)インデックスエンジンを探しています。インプロセスのインデックス作成と検索を探していますが、SphinxやSolrなどのサーバーのインデックス作成には興味がありません。
C/C++ライブラリのバインディングを作成することも怖くないので、この種の提案も受け入れます。
これまでに見つけた
「自分で転がす」こともできますが、既存のソリューションを使用したいと思います。
編集:なぜスタンドアロンのインデックスサーバーに興味がないのか:高速なインプロセスキーバリューストアデータベースを使用しているため、クエリのためにプロセスから出なければならないのはかなり無駄です。
私の以前の答えの更新です-あまりにも多くの議論があったので、この更新を迷子にしたくありませんでした。
ダウンロードできますhere :
はい、新しくリリースされた Norch をチェックしてください
Norchはnode.jsの search-index モジュールに基づいており、これはGoogleの強力なlevelDBインデックスに基づいています。
編集: search-index module を使用して、高速の「インプロセス」検索機能を使用します。
外部インデックスの使用に興味がない理由を説明できますか?全文検索の場合、常にPostgreSQLの全文索引作成機能を使用することに戻ります。非常に高速で、索引付けには完全な索引更新が必要なく(Solrのように)、結果はLuceneベースのソリューション(Elastic Searchなど)よりも早く返されます)。
しかし、本当にインプロセスで実行したい場合は、おそらくLunrを確認する必要があります。 http://lunrjs.com/ -ブラウザだけでなくNodeでも機能します。
編集:ここに、Luceneよりも高速なPostgresの統計情報があります: http://fr.slideshare.net/billkarwin/full-text-search-in-postgresql -スライド49を参照してください。
編集:インプロセス/アウトプロセスでどのような速度を求めているのかはわかりませんが、PostgreSQLデータベースは汗をかくことなく毎秒10万件のクエリを実行でき、SSDでもそうではありません。パフォーマンスのニーズを考えすぎているのかもしれません-複数のノードに移動する必要がある場合(またはクラスターを使用してすべてのCPUを利用する場合)、とにかくインプロセスをダンプする必要があります。
全文検索ライトは、全文検索を行うための純粋なJS記述ノードモジュールです。ここで、現在のgitリポジトリリンクを見つけることができます。 https://github.com/frankred/node-full-text-search-light