Getting started
Starting in standalone mode (Single node cluster)
Running node in standalone mode is easy. You can start server with the following command:
$ ./bin/bayard 1
Getting schema
You can confirm current schema with the following command:
$ ./bin/bayard-cli schema | jq .
You'll see the result in JSON format. The result of the above command is:
[
{
"name": "_id",
"type": "text",
"options": {
"indexing": {
"record": "basic",
"tokenizer": "raw"
},
"stored": true
}
},
{
"name": "url",
"type": "text",
"options": {
"indexing": {
"record": "freq",
"tokenizer": "default"
},
"stored": true
}
},
{
"name": "name",
"type": "text",
"options": {
"indexing": {
"record": "position",
"tokenizer": "en_stem"
},
"stored": true
}
},
{
"name": "description",
"type": "text",
"options": {
"indexing": {
"record": "position",
"tokenizer": "en_stem"
},
"stored": true
}
},
{
"name": "popularity",
"type": "u64",
"options": {
"indexed": true,
"fast": "single",
"stored": true
}
},
{
"name": "category",
"type": "hierarchical_facet"
},
{
"name": "timestamp",
"type": "date",
"options": {
"indexed": true,
"fast": "single",
"stored": true
}
}
]
Indexing document
You can index document with the following command:
$ cat ./examples/doc_1.json | xargs -0 ./bin/bayard-cli set 1
$ ./bin/bayard-cli commit
Getting document
You can get document with the following command:
$ ./bin/bayard-cli get 1 | jq .
You'll see the result in JSON format. The result of the above command is:
{
"_id": [
"1"
],
"category": [
"/category/search/server",
"/language/rust"
],
"description": [
"Bayard is a full text search and indexing server, written in Rust, built on top of Tantivy."
],
"name": [
"Bayard"
],
"popularity": [
1152
],
"timestamp": [
"2019-12-19T01:41:00+00:00"
],
"url": [
"https://github.com/bayard-search/bayard"
]
}
Indexing documents in bulk
You can index documents in bulk with the following command:
$ cat ./examples/bulk_put.jsonl | xargs -0 ./bin/bayard-cli bulk-set
$ ./bin/bayard-cli commit
Searching documents
You can search documents with the following command:
$ ./bin/bayard-cli search --facet-field=category --facet-prefix=/category/search --facet-prefix=/language description:rust | jq .
You'll see the result in JSON format. The result of the above command is:
{
"count": 2,
"docs": [
{
"fields": {
"_id": [
"8"
],
"category": [
"/category/search/library",
"/language/rust"
],
"description": [
"Tantivy is a full-text search engine library inspired by Apache Lucene and written in Rust."
],
"name": [
"Tantivy"
],
"popularity": [
3142
],
"timestamp": [
"2019-12-19T01:07:00+00:00"
],
"url": [
"https://github.com/tantivy-search/tantivy"
]
},
"score": 1.5722498
},
{
"fields": {
"_id": [
"1"
],
"category": [
"/category/search/server",
"/language/rust"
],
"description": [
"Bayard is a full text search and indexing server, written in Rust, built on top of Tantivy."
],
"name": [
"Bayard"
],
"popularity": [
1152
],
"timestamp": [
"2019-12-19T01:41:00+00:00"
],
"url": [
"https://github.com/bayard-search/bayard"
]
},
"score": 1.5331805
}
],
"facet": {
"category": {
"/language/rust": 2,
"/category/search/library": 1,
"/category/search/server": 1
}
}
}
Deleting document
You can delete document with the following command:
$ ./bin/bayard-cli delete 1
$ ./bin/bayard-cli commit
Deleting documents in bulk
You can delete documents in bulk with the following command:
$ cat ./examples/bulk_delete.jsonl | xargs -0 ./bin/bayard-cli bulk-delete
$ ./bin/bayard-cli commit