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

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

I'm not afraid to create bindings for the C / C ++ library, so I am also open to these suggestions.

So far i have found

  • node-cluecene , which seems to be no longer supported (and has several open issues).
  • I could create my own binding for CLucene , but it seems to be pretty rarely supported, and its current version is also quite behind Java Lucene
  • Apache Lucy , which seems to be intended to create bindings for dynamic languages, but so far they have no node bindings (and not the C API), and I have not found any documents on creating bindings. I also did not find any performance criteria.
  • node-search that seems abandoned
  • jsii , which is still a prototype and also abandoned
  • fully functional , designed only for use in a web browser
  • lunr.js , which apparently allows serialization of the entire index, so it doesn't scale

I could “collapse my own,” but I would rather use an existing solution.

EDIT: Why I'm not interested in a standalone index server: I use a fast key value storage database in the process, so it would be pretty unnecessary to waste time for queries.

+49
javascript search-engine indexing lucene
May 18 '13 at 14:01
source share
4 answers

Just updating my answer above, as there were so many discussions, I did not want this update to get lost.

You can download it here: https://github.com/fergiemcdowall/norch

+15
Aug 28 '13 at 8:51
source share

Yes, check out the recently released Norch

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

EDIT: Use the search index for quick searches in the process.

+12
Jul 08 '13 at 7:57
source share

Can you explain why you are not interested in using an external index? For full-text search, I always return to using PostgreSQL's full-text indexing capabilities - it is very fast, indexing does not require a full index update (e.g., Solr), and results are returned faster than Lucene-based solutions (such as Elastic Search).

But if you really want to do this in the process, you probably want to look at Lunr: http://lunrjs.com/ - it works in Node, not just the browser.

Edit: Here, where I got Postgres statistics faster than Lucene: http://fr.slideshare.net/billkarwin/full-text-search-in-postgresql - see Slide 49.

Edit: I’m not sure what speed you are looking for / outside the process, but our PostgreSQL database can do 100 thousand queries per second without breaking a sweat, and it’s not even on SSDs. You may be thinking too much about your performance needs - after all, after you need to switch to several nodes (or use a cluster to take advantage of all processors), you still have to reset the process.

+11
May 19 '13 at 15:44
source share

Full-text search is a purely JS-written node module for full-text search. Here you can find the current git repository link: https://github.com/frankred/node-full-text-search-light

+2
Nov 20 '14 at 22:55
source share



All Articles