Skip to content

NeowayLabs/neosearch

Repository files navigation

Build Status Build Status GoDoc codecov.io

NeoSearch - Neoway Full Text Search Index

Join the chat at https://gitter.im/NeowayLabs/neosearch

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.

Why another text search engine ?

We believe to have good reasons on building a new text search engine.

Take a look at ours motives here

Install

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 ./...

Storage LevelDB - Optional

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 ./...

Contributing

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