What's the lightweight approach to create an inverted index nowadays with some basic stemming?
What's the lightweight approach to create an inverted index nowadays with some basic stemming?
It's the lightweight & fast alternative, similar to what Nginx is to Apache and IIS.
* SQLite FTS 4 (free, open source): http://www.sqlite.org/fts3.html
Lightweight & embedded solution (suitable for small to medium sized database and single process).
For Go there's also Bleve (http://www.blevesearch.com/), but I haven't tried it yet.
It's well-designed but fairly basic. Since it's a library, you'll have to write the server part yourself. (It has a server called Omega, but I've never used it.)
Indexing is slower than Lucene, though, but it's not too bad. The only significant problem I found with it the last time I was using it (which was 5+ years ago) was that writers occasionally would cause queries to abort, and you had to restart them, a cycle which could lead to long query times if you had lots of write churn.
Features are limited and performance won't be the best, but sometimes ease of use and maintenance are all you need.
I'm sure there are packages that do the storage and retrieval for you, but it's the sort of lightweight thing you can do quickly and tweak from there.