Skip to content

Latest commit

 

History

History
76 lines (69 loc) · 2.18 KB

index.md

File metadata and controls

76 lines (69 loc) · 2.18 KB
layout
default

State

Currently Toshi is an experimental full text search engine written in Rust and based on top of Tantivy. Toshi is in a fluxy state right now so it's not recommended to use in production. (unless you are brave) Despite this, being built on top of the Rust programming language gives Toshi native speed and memory safety that is not found in other full text search engines. (Not to mention not having to deal with GC.)

Example

curl -X POST http://localhost:8080/rap \
    -H 'Content-Type: application/json' \
    -d '{"query": {"term": {"artist": "beatles"} }, "limit": 1}'
{
    "hits": 1,
    "docs": [
        {
            "score": 8.398765,
            "doc": {
                "artist": [
                    "beatles"
                ],
                "genre": [
                    "Rock"
                ],
                "index": [
                    149652
                ],
                "lyrics": [
                    "..."    
                ],
                "song": [
                    "i-should-have-known-better"
                ],
                "year": [
                    2014
                ]
            }
        }
    ]
}

Building

git clone https://github.com/toshi-search/toshi.git
cargo build --release
./target/release/toshi --help

Toshi Search 0.1.1
Stephen Carman <[email protected]>
A full text search engine based on Tantivy

USAGE:
    toshi.exe [FLAGS] [OPTIONS]

FLAGS:
    -e, --enable-clustering
    -x, --experimental
        --help                 Prints help information
    -m, --master
    -V, --version              Prints version information

OPTIONS:
    -N, --cluster-name <cluster-name>     [default: kitsune]
    -c, --config <config>                 [default: config/config.toml]
    -C, --consul-addr <consul-addr>       [default: 127.0.0.1:8500]
    -h, --host <host>                     [default: 0.0.0.0]
    -l, --level <level>                   [default: info]
    -n, --nodes <nodes>...                [default: ]
    -d, --data-path <path>                [default: data/]
    -p, --port <port>                     [default: 8080]