NeoSearch is a feature-limited full-text-search library with focus on indices relationships. Its main goal is to provide very fast JOIN operations between information stored on different indices.
It's not a complete FTS (Full Text Search) engine in the common sense, instead, it aims to solve very specific problems of FTS. At the moment, NeoSearch is a laboratory for research, not recommended for production usage. Here we will test various technologies for fast storage and search algorithms. In the future, maybe, we can be proud of a very nice tech for solving search problems in big data companies.
NeoSearch is like a Lucene library but without all of the complexities of a complete FTS engine, written in Go, and focused on high performance search with data relationships.
It's not complete yet, still in active development, so stay tuned for updates.
We believe to have good reasons on building a new text search engine.
Take a look at ours motives here
Install dependencies:
- snappy (optional, only required for compressed data)
- Go 1.4
and get the code:
go get -v -u -t github.com/NeowayLabs/neosearch/...
cd $GOPATH/src/github.com/NeowayLabs/neosearch
go test -v ./...
Install dependencies:
- leveldb >= 1.15 (optional)
export CGO_CFLAGS='-I <path/to/leveldb/include>'
export CGO_LDFLAGS='-L <path/to/leveldb/lib>'
go get -tags leveldb -v -u -t github.com/NeowayLabs/neosearch/...
cd $GOPATH/src/github.com/NeowayLabs/neosearch
go test -tags leveldb -v ./lib/neosearch/store/leveldb ./...
Looking for some fun ? Starting to develop on NeoSearch is as easy as installing docker :D
First of all install Docker.
After you get docker installed, just get the code:
git clone git@github.com:NeowayLabs/neosearch.git
And build it:
make build
If you get no errors, you are good to go :D. Just start messing around with the code on your preferred editor/IDE.
Compiling the code:
make
Running the tests:
make check
Yeah, simple like that :D