Is there a good indexing / search engine for Node.js? [closed]

I'm looking for a good open source (with LGPL or a permissive license) indexing engine for a node.js application, something like Lucene. I'm looking for in-process indexing and search and am not interested in indexing servers like Sphinx or Solr.

I am not afraid to create bindings for a C/C++ library either so I'm open to those kind of suggestions as well.

So far I've found

  • node-clucene which doesn't seem to be actively maintained anymore (and has several open issues)
  • I could create my own binding for CLucene but it seems to be quite sparsely maintained and its current version is also quite behind the Java Lucene
  • Apache Lucy which seems to be designed for the purpose of creating bindings for dynamic languages, but so far they don't have node bindings (nor a C API) and I haven't found any docs about creating bindings. I also didn't find any benchmarks about its performance.
  • node-search which seems to be abandoned
  • jsii which seems to be still a prototype and is also abandoned
  • fullproof which is only intended to run in a web broswer
  • lunr.js which seems to only allow serializing the whole index, so isn't scalable

I could "roll my own", but I'd prefer to use an already existing solution.

EDIT: Why I'm not interested in a standalone index server: I use a fast in-process key-value store database, so it'd be quite a waste having to go out of process for querying.


Solution 1:

Just an update to my earlier answer - since there was so much discussion I didn't want this update to get lost.

You can download it here:

Solution 2:

Yes, check out the newly released Norch

Norch is based on the search-index module for node.js, which is in turn based on Google's powerful levelDB index.

EDIT: Use the search-index module for fast "in-process" search capability.