A full-text search and indexing server written in Rust.

Overview

Bayard

GitHub Actions Join the chat at https://gitter.im/bayard-search/bayard License: MIT

Bayard is a full-text search and indexing server written in Rust built on top of Tantivy that implements Raft Consensus Algorithm and gRPC.
Achieves consensus across all the nodes, ensures every change made to the system is made to a quorum of nodes.
Bayard makes easy for programmers to develop search applications with advanced features and high availability.

Features

  • Full-text search/indexing
  • Index replication
  • Bringing up a cluster
  • Command line interface is available

Source code repository

Docker container repository

Documents

Comments
  • Support multiple indexes

    Support multiple indexes

    It seems the documents are all in a single index. Do you plan to support multiple indexes that user can add documents into and search from separate index?

    Thanks for building this great piece of software!

    opened by lming 5
  • Dockerのbayard-restで500エラーが発生します

    Dockerのbayard-restで500エラーが発生します

    概要

    Docker Imageのbayard-restの/v1/documents/{id}(GET)を実行すると、500エラー(failed to get client for node: id=0)が発生します。

    /v1/documents/1(POST)や、/v1/commit(GET)は正常完了します。

    bayard-cliで、bayard-restの/v1/documents/{id}と同等のコマンドを実行するとデータを取得できるため、bayard-restの不具合ではないか?と推測しています。

    恐縮ですが、ご確認をよろしくお願いします🙏

    環境

    • CentOS 7
    • macOS Catalina

    手順

    $ git clone https://github.com/bayard-search/bayard.git; cd bayard
    $ # docker-compose.ymlを下記のように修正
    $ docker-compose up -d
    $ curl -X PUT \
        --header 'Content-Type: application/json' \
        --data-binary @./examples/doc_ja.json \
        'http://localhost:8000/v1/documents/1' # HTTP Status 200 OK
    $ curl -X GET 'http://localhost:8000/v1/commit' # HTTP Status 200 OK
    $ curl -X GET 'http://localhost:8000/v1/documents/1' # HTTP Status 500 NG
    failed to get client for node: id=0
    
    $ docker run --net=bayard_default --rm --name bayard-cli bayardsearch/bayard-cli:latest get 1 --server=bayard:5000 # OK
    {"_id":["1"],"description":["検索エンジン(けんさくエンジン、英: search engine)は、狭義にはインターネットに存在する情報(ウェブページ、ウェブサイト、画像ファイル、ネットニュースなど)を検索する機能およびそのプログラム。インターネットの普及初期には、検索としての機能のみを提供していたウェブサイトそのものを検索エンジンと呼んだが、現在では様々なサービスが加わったポータルサイト化が進んだため、検索をサービスの一つとして提供するウェブサイトを単に検索サイトと呼ぶことはなくなっている。広義には、インターネットに限定せず情報を検索するシステム全般を含む。"],"name":["検索エンジン"],"url":["https://ja.wikipedia.org/wiki/%E6%A4%9C%E7%B4%A2%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3"]}
    

    docker-compose.yml は日本語の全文検索を試したかったので、下記のように修正しました。

    version: '3'
    services:
      bayard:
        container_name: bayard
        image: bayardsearch/bayard:latest
        entrypoint: bayard
        volumes:
          - ./examples/schema_ja.json:/etc/bayard/schema_ja.json
        command:
          - '--host=bayard'
          - '--raft-port=7000'
          - '--index-port=5000'
          - '--metrics-port=9000'
          - '--data-directory=/tmp/bayard'
          - '--tokenizer-file=/etc/bayard/tokenizer.json'
          - '--schema-file=/etc/bayard/schema_ja.json'
          - '1'
        ports:
          - "15000:5000"
          - "17000:7000"
          - "19000:9000"
    
      bayard-rest:
        container_name: bayard-rest
        image: bayardsearch/bayard-rest:latest
        entrypoint: bayard-rest
        ports:
          - "18000:8000"
        command:
          - '--host=0.0.0.0'
          - '--port=8000'
          - '--index-address=bayard:5000'
        depends_on:
          - bayard
    
    opened by kght6123 4
  • client endpoint access

    client endpoint access

    I was able to get server running thanks for clear instructions. Once the server is running, how do I query from a webpage ? I am new to gRPC, hence I am looking for suggestions on how to query and consume results. Thank you - Bayard team

    opened by pmirla 4
  • Cryptic panic message if schema.json was not found

    Cryptic panic message if schema.json was not found

    Expected result:

    Can't find schema.json or it's not readable. Default location (`./etc/schema.json`) could be overridden with `-s, --schema-file` command-line paramethers
    

    Actual result:

    thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', src/libcore/result.rs:1084:5
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
    
    opened by iyesin 4
  • Bulk search API

    Bulk search API

    Hi, we're currently using elasticsearch for https://deces.machid.io (using powerful levensthein fuzzy search).

    We use bulk search to record linkage usecase (usefull for clinic studies). We would be enthousiastic to study the port from elastiscearch to bayard, but bayard is missing this key feature.

    Do you plan to have such bulk search api ?

    opened by rhanka 3
  • Monotonic updates

    Monotonic updates

    opened by jfinity 2
  • Faceted search not working with docker image v0.4.0

    Faceted search not working with docker image v0.4.0

    Hi. I've been trying out bayard and it's great so far. One thing that I've noticed now that the faceted search doesn't seem to be working. I'm using this docker image. It is tagged as v0.4.0 and has been pushed 2 months ago. Looking at CHANGES.md, it looks like faceted search has been implemented in v0.3.0 so I would assume it's already available in the docker container.

    Perhaps my understanding of faceted search is wrong. Here's a minimal example: data.jsonl (inspired from tantivy examples):

    {"_id": "1", "name": "Cat", "category": ["/Felidae/Felinae/Felis"]}
    {"_id": "2", "name": "Canada lynx", "category": ["/Felidae/Felinae/Lynx"]}
    {"_id": "3", "name": "Cheetah", "category": ["/Felidae/Felinae/Acinonyx"]}
    {"_id": "4", "name": "Tiger", "category": ["/Felidae/Pantherinae/Panthera"]}
    {"_id": "5", "name": "Lion", "category": ["/Felidae/Pantherinae/Panthera"]}
    {"_id": "6", "name": "Jaguar", "category": ["/Felidae/Pantherinae/Panthera"]}
    {"_id": "7", "name": "Sunda clouded leopard", "category": ["/Felidae/Pantherinae/Neofelis"]}
    {"_id": "8", "name": "Fossa", "category": ["/Eupleridae/Cryptoprocta"]}
    

    schema.json:

    [
      {
        "name": "_id",
        "type": "text",
        "options": {
          "indexing": {
            "record": "basic",
            "tokenizer": "raw"
          },
          "stored": true
        }
      },
      {
        "name": "name",
        "type": "text",
        "options": {
          "indexing": {
            "record": "position",
            "tokenizer": "en_stem"
          },
          "stored": false
        }
      },
      {
        "name": "category",
        "type": "hierarchical_facet"
      }
    ]
    

    Then, through the web api, I request the following:

    curl -X GET 'http://localhost:8000/index/search?query=cat&from=0&limit=10&facet_field=category&facet_prefix=/Felidae/Felinae'
    

    which results in

    {
      "count": 1,
      "docs": [
        {
          "fields": {
            "_id": [
              "1"
            ],
            "category": [
              "/Felidae/Felinae/Felis"
            ]
          },
          "score": 2.016771
        }
      ],
      "facet": {
        "category": {
          "/Felidae/Felinae/Felis": 1
        }
      }
    }
    

    This is what I expect because I'm searching in the correct category. However, searching in a different category will yield the same document:

    curl -X GET 'http://localhost:8000/index/search?query=cat&from=0&limit=10&facet_field=category&facet_prefix=/Eupleridae'
    
    {
      "count": 1,
      "docs": [
        {
          "fields": {
            "_id": [
              "1"
            ],
            "category": [
              "/Felidae/Felinae/Felis"
            ]
          },
          "score": 2.016771
        }
      ],
      "facet": {
        "category": {}
      }
    }
    

    I would expect 0 documents to be returned, since no element has the name "cat" in the category "/Eupleridae".

    I also noticed that "facet" is filled differently but I'm not sure how to interpret that.

    This is just a minimal example. I've had a more data and I've queried for terms which exist in a category, but still other elements were returned. Am I misunderstanding faceted search, using bayard wrong, am I using an unreleased feature or is this indeed a bug?

    opened by klausondrag 2
  • Cluster

    Cluster

    Hi,

    In a cluster scenario, do the HTTP Gateway or gRPC run on all modes or only on the master node?

    Would be cool to have a slack channel or I can combine all my questions into one thread.

    Bayard looks good.

    Thanks

    opened by innerop 2
  • gRPC doc

    gRPC doc

    Hi,

    I’ve not used gRPC before but I’d like to give it a shot. As far as docs go, where do I look for any info regarding setting up gPRC calls to the Bayard API?

    Cheers

    opened by innerop 2
  • Full Text returns wrong results for Turkish

    Full Text returns wrong results for Turkish

    It does not provide a correct search result when the word contains "Turkish i" char.

    Index documents

    ./bin/bayard set 1 '{ "text" : "quıt" }'
    ./bin/bayard set 2 '{ "text" : "quit" }'
    ./bin/bayard set 3 '{ "text" : "QUIT" }'
    ./bin/bayard set 4 '{ "text" : "QUİT" }'
    

    Search for "quit":

    ./bin/bayard search text:"quit"
    

    Actual Results

    [
      {"id":["3"],"text":["QUIT"]},
      {"id":["2"],"text":["quit"]}
    ]
    

    Expected Results

    [
      {"id":["4"],"text":["QUİT"]},
      {"id":["3"],"text":["QUIT"]},
      {"id":["2"],"text":["quit"]},
      {"id":["1"],"text":["quıt"]}
    ]
    
    opened by ogun 2
  • Bump serde_json from 1.0.86 to 1.0.89

    Bump serde_json from 1.0.86 to 1.0.89

    Bumps serde_json from 1.0.86 to 1.0.89.

    Release notes

    Sourced from serde_json's releases.

    v1.0.89

    • Fix invalid JSON incorrectly accepted when a large number has no digits after decimal point (#953)

    v1.0.88

    • Optimize serde_json::Map's implementation of append and clone_from (#952, thanks @​Lucretiel)

    v1.0.87

    • Add write_i128 and write_u128 methods to serde_json::Formatter to control the formatting of 128-bit integers (#940, thanks @​Lucretiel)
    Commits
    • d2f9368 Release 1.0.89
    • 0b89836 Merge pull request #956 from dtolnay/decimal
    • 9d94e92 Require at least one digit after decimal point
    • c27b023 Add regression test for issue 953
    • 586fefb Resolve semicolon_if_nothing_returned pedantic clippy lint
    • 9eb66da Release 1.0.88
    • 057957c Merge pull request #952 from Lucretiel/map-traits
    • 3347248 Add clone_from to Map; Map::append now uses IndexMap::extend
    • ca41bdd Update ui test suite to nightly-2022-11-16
    • 4f194c9 Resolve needless_borrow pedantic clippy lint in test
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • Bump tokio from 1.21.2 to 1.23.1

    Bump tokio from 1.21.2 to 1.23.1

    Bumps tokio from 1.21.2 to 1.23.1.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.23.1

    This release forward ports changes from 1.18.4.

    Fixed

    • net: fix Windows named pipe server builder to maintain option when toggling pipe mode (#5336).

    #5336: tokio-rs/tokio#5336

    Tokio v1.23.0

    Fixed

    • net: fix Windows named pipe connect (#5208)
    • io: support vectored writes for ChildStdin (#5216)
    • io: fix async fn ready() false positive for OS-specific events (#5231)

    Changed

    • runtime: yield_now defers task until after driver poll (#5223)
    • runtime: reduce amount of codegen needed per spawned task (#5213)
    • windows: replace winapi dependency with windows-sys (#5204)

    #5208: tokio-rs/tokio#5208 #5216: tokio-rs/tokio#5216 #5213: tokio-rs/tokio#5213 #5204: tokio-rs/tokio#5204 #5223: tokio-rs/tokio#5223 #5231: tokio-rs/tokio#5231

    Tokio v1.22.0

    Added

    • runtime: add Handle::runtime_flavor (#5138)
    • sync: add Mutex::blocking_lock_owned (#5130)
    • sync: add Semaphore::MAX_PERMITS (#5144)
    • sync: add merge() to semaphore permits (#4948)
    • sync: add mpsc::WeakUnboundedSender (#5189)

    Added (unstable)

    • process: add Command::process_group (#5114)
    • runtime: export metrics about the blocking thread pool (#5161)
    • task: add task::id() and task::try_id() (#5171)

    Fixed

    • macros: don't take ownership of futures in macros (#5087)
    • runtime: fix Stacked Borrows violation in LocalOwnedTasks (#5099)
    • runtime: mitigate ABA with 32-bit queue indices when possible (#5042)
    • task: wake local tasks to the local queue when woken by the same thread (#5095)
    • time: panic in release mode when mark_pending called illegally (#5093)
    • runtime: fix typo in expect message (#5169)

    ... (truncated)

    Commits
    • 1a997ff chore: prepare Tokio v1.23.1 release
    • a8fe333 Merge branch 'tokio-1.20.x' into tokio-1.23.x
    • ba81945 chore: prepare Tokio 1.20.3 release
    • 763bdc9 ci: run WASI tasks using latest Rust
    • 9f98535 Merge remote-tracking branch 'origin/tokio-1.18.x' into fix-named-pipes-1.20
    • 9241c3e chore: prepare Tokio v1.18.4 release
    • 699573d net: fix named pipes server configuration builder
    • 3ce5a26 chore: prepare Tokio v1.23 release (#5270)
    • 644cb82 rt: fix *_closed false positives (#5231)
    • a1316cd io: impl std::io::BufRead on SyncIoBridge\<T> (#5265)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
    dependencies rust 
    opened by dependabot[bot] 0
  • Bump serde_json from 1.0.86 to 1.0.91

    Bump serde_json from 1.0.86 to 1.0.91

    Bumps serde_json from 1.0.86 to 1.0.91.

    Release notes

    Sourced from serde_json's releases.

    v1.0.90

    • Documentation improvements

    v1.0.89

    • Fix invalid JSON incorrectly accepted when a large number has no digits after decimal point (#953)

    v1.0.88

    • Optimize serde_json::Map's implementation of append and clone_from (#952, thanks @​Lucretiel)

    v1.0.87

    • Add write_i128 and write_u128 methods to serde_json::Formatter to control the formatting of 128-bit integers (#940, thanks @​Lucretiel)
    Commits
    • 26f147f Release 1.0.91
    • d9cdb98 Opt out -Zrustdoc-scrape-examples on docs.rs
    • 331511d Release 1.0.90
    • 8753829 Replace ancient CI service provider in readme
    • 0a43394 Update build status badge
    • 8794844 Prevent build.rs rerunning unnecessarily on all source changes
    • 0b54871 Time out workflows after 45 minutes
    • ecad462 Fix renamed let_underscore_drop lint
    • 9295c96 Resolve needless_borrowed_reference clippy lints
    • d2f9368 Release 1.0.89
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • Bump tantivy from 0.18.0 to 0.19.0

    Bump tantivy from 0.18.0 to 0.19.0

    Bumps tantivy from 0.18.0 to 0.19.0.

    Release notes

    Sourced from tantivy's releases.

    Tantivy v0.18.1

    Changelog

    Sourced from tantivy's changelog.

    Tantivy 0.19

    Bugfixes

    Features/Improvements

    Tantivy 0.18

    • For date values chrono has been replaced with time (@​uklotzde) #1304 :
      • The time crate is re-exported as tantivy::time instead of tantivy::chrono.
      • The type alias tantivy::DateTime has been removed.
      • Value::Date wraps time::PrimitiveDateTime without time zone information.
      • Internally date/time values are stored as seconds since UNIX epoch in UTC.
      • Converting a time::OffsetDateTime to Value::Date implicitly converts the value into UTC. If this is not desired do the time zone conversion yourself and use time::PrimitiveDateTime directly instead.
    • Add histogram aggregation (@​PSeitz)
    • Add support for fastfield on text fields (@​PSeitz)
    • Add terms aggregation (@​PSeitz)
    • Add support for zstd compression (@​kryesh)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • Bump clap from 4.0.12 to 4.0.26

    Bump clap from 4.0.12 to 4.0.26

    Bumps clap from 4.0.12 to 4.0.26.

    Release notes

    Sourced from clap's releases.

    v4.0.26

    [4.0.26] - 2022-11-16

    Fixes

    • (error) Fix typos in ContextKind::as_str

    v4.0.25

    [4.0.25] - 2022-11-15

    Features

    • (error) Report available subcommands when required subcommand is missing

    v4.0.24

    [4.0.24] - 2022-11-14

    Fixes

    • Avoid panic when printing an argument that isn't built

    v4.0.23

    [4.0.23] - 2022-11-11

    Fixes

    • Don't panic on reporting invalid-long errors when followed by invalid UTF8
    • (help) Clarified argument to help subcommand

    v4.0.22

    [4.0.22] - 2022-11-07

    Fixes

    • (help) Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

    v4.0.21

    [4.0.21] - 2022-11-07

    Features

    • (derive) long_about and long_help attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

    v4.0.20

    [4.0.20] - 2022-11-07

    Fixes

    • (derive) Allow defaulted value parser for '()' fields

    ... (truncated)

    Changelog

    Sourced from clap's changelog.

    [4.0.26] - 2022-11-16

    Fixes

    • (error) Fix typos in ContextKind::as_str

    [4.0.25] - 2022-11-15

    Features

    • (error) Report available subcommands when required subcommand is missing

    [4.0.24] - 2022-11-14

    Fixes

    • Avoid panic when printing an argument that isn't built

    [4.0.23] - 2022-11-11

    Fixes

    • Don't panic on reporting invalid-long errors when followed by invalid UTF8
    • (help) Clarified argument to help subcommand

    [4.0.22] - 2022-11-07

    Fixes

    • (help) Don't overflow into next-line-help early due to stale (pre-v4) padding calculations

    [4.0.21] - 2022-11-07

    Features

    • (derive) long_about and long_help attributes, without a value, force using doc comment (before it wouldn't be set if there wasn't anything different than the short help)

    [4.0.20] - 2022-11-07

    Fixes

    • (derive) Allow defaulted value parser for '()' fields

    [4.0.19] - 2022-11-04

    Features

    • ColorChoice now implements ValueEnum

    [4.0.18] - 2022-10-20

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • Bump futures-util from 0.3.24 to 0.3.25

    Bump futures-util from 0.3.24 to 0.3.25

    Bumps futures-util from 0.3.24 to 0.3.25.

    Release notes

    Sourced from futures-util's releases.

    0.3.25

    • Fix soundness issue in join! and try_join! macros (#2649)
    • Implement Clone for sink::Drain (#2650)
    Changelog

    Sourced from futures-util's changelog.

    0.3.25 - 2022-10-20

    • Fix soundness issue in join! and try_join! macros (#2649)
    • Implement Clone for sink::Drain (#2650)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
Releases(v0.9.0)
  • v0.8.4(Nov 8, 2020)

  • v0.8.3(Nov 7, 2020)

    0.8.3 (2020-11-07)

    • Bump up version to 0.8.3 #110 @mosuka
    • Update dependencies #109 @mosuka
    • Fixed a bug that did not return schema #108 @mosuka
    • Update Dockerfile #107 @mosuka
    Source code(tar.gz)
    Source code(zip)
  • v0.8.2(Nov 7, 2020)

    0.8.2 (2020-08-31)

    • Bump up version #106 @mosuka
    • Upgrade protobuf #105 @mosuka
    • Upgrade dependencies #104 @mosuka
    • Upgrade tantivy #103 @mosuka
    • Fix docker run example #102 @mosuka
    • Fix typo #101 @mosuka
    • Migrate to Actix web #100 @mosuka
    Source code(tar.gz)
    Source code(zip)
  • v0.8.1(May 30, 2020)

    0.8.1 (2020-05-29)

    • Bump up version #99 @mosuka
    • Change web framework to Hyper #98 @mosuka
    • Change the web framework of Metrics Server to Hyper #97 @mosuka
    • Add example self-signed certificate #95 @mosuka
    • Add GitHub Actions Integration #94 @messense
    • Update jieba-rs to 0.5.0 #93 @messense
    • Fix typo in CLI flag #92 @mosuka
    • Support TLS on REST server #91 @mosuka
    • Support CORS on REST server #90 @mosuka
    • Merge CLI code #88 @mosuka
    • Migrate to Actix web from Iron #87 @mosuka
    • Refactor metrics server #86 @mosuka
    • Combine the handlers into one file #85 @mosuka
    • Refactor REST server #84 @mosuka
    Source code(tar.gz)
    Source code(zip)
  • v0.8.0(May 13, 2020)

  • v0.7.3(May 4, 2020)

  • v0.7.2(May 4, 2020)

  • v0.7.0(Apr 27, 2020)

    0.7.0 (2020-04-27)

    • Split a package #78 @mosuka
    • Update search.md #75 @klausondrag
    • Refactoring #74 @mosuka
    • Migrate to bayard-client #73 @mosuka
    • Migrate to bayard-proto #72 @mosuka
    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(Jan 21, 2020)

  • v0.3.0(Jan 3, 2020)

    0.3.0 (2020-01-04)

    • Add indexer flag #58 @mosuka
    • Add docs for job scheduler #57 @mosuka
    • Add document for gateway #56 @mosuka
    • Update dependencies #55 @mosuka
    • Bulk update #54 @mosuka
    • Update docs #53 @mosuka
    • Upgrade Tantivy to 0.11.3 #52 @mosuka
    • Error handling #51 @mosuka
    • Update docs #50 @mosuka
    • Update to tantivy 0.11.2 and avoid blocking on merge while the IndexWriter's lock is held #49 @fulmicoton
    • Support faceted search #48 @mosuka
    • Add document for designing schema #47 @mosuka
    • Get the document count that match the query #45 @mosuka
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Dec 1, 2019)

    0.2.0 (2019-12-01)

    • Add http server #41 @mosuka
    • Add job scheduler #40 @mosuka
    • Add probe command #39 @mosuka
    • Add merge command #38 @mosuka
    • Add rollback command #37 @mosuka
    • Protobuf refactoring #33 @mosuka
    • Bump up Tantivy #32 @mosuka
    • Add metrics command #31 @mosuka
    • Add command to commit index #29 @mosuka
    • Make index writer to field of struct #28 @mosuka
    • Add command to get schema #27 @mosuka
    • Delete --leader-id from CLI #26 @mosuka
    • Set default leader id #25 @mosuka
    • Rename status to peers #24 @mosuka
    • Add cluster status command #23 @mosuka
    • Add signal handling #22 @mosuka
    • Restore leave command document #21 @mosuka
    • Add source code link #20 @mosuka
    • Add documents #19 @mosuka
    • Update Dockerfile #10 @mosuka
    • Fixed typo in error message #6 @eko
    • Dockerfile for tests and profit #5 @iyesin
    • Small typo in get command example fixed #4 @msmakhlouf
    • refactor get servers from ArgMatches #3 @robatipoor
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Dec 1, 2019)

Owner
Bayard Search
Bayard Search
Tantivy is a full-text search engine library inspired by Apache Lucene and written in Rust

Tantivy is a full text search engine library written in Rust. It is closer to Apache Lucene than to Elasticsearch or Apache Solr in the sense it is no

tantivy 7.4k Dec 28, 2022
Tantivy is a full-text search engine library inspired by Apache Lucene and written in Rust

Tantivy is a full-text search engine library written in Rust. It is closer to Apache Lucene than to Elasticsearch or Apache Solr in the sense it is no

Quickwit OSS 7.5k Jan 9, 2023
Tantivy is a full text search engine library written in Rust.

Tantivy is a full text search engine library written in Rust. It is closer to Apache Lucene than to Elasticsearch or Apache Solr in the sense it is no

Quickwit OSS 7.4k Dec 30, 2022
A full-text search engine in rust

Toshi A Full-Text Search Engine in Rust Please note that this is far from production ready, also Toshi is still under active development, I'm just slo

Toshi Search 3.8k Jan 7, 2023
🔍TinySearch is a lightweight, fast, full-text search engine. It is designed for static websites.

tinysearch TinySearch is a lightweight, fast, full-text search engine. It is designed for static websites. TinySearch is written in Rust, and then com

null 2.2k Dec 31, 2022
Shogun search - Learning the principle of search engine. This is the first time I've written Rust.

shogun_search Learning the principle of search engine. This is the first time I've written Rust. A search engine written in Rust. Current Features: Bu

Yuxiang Liu 5 Mar 9, 2022
weggli is a fast and robust semantic search tool for C and C++ codebases. It is designed to help security researchers identify interesting functionality in large codebases.

weggli Introduction weggli is a fast and robust semantic search tool for C and C++ codebases. It is designed to help security researchers identify int

Google Project Zero 2k Jan 5, 2023
EasyAlgolia is a Rust crate designed for utilizing the Algolia admin client. It simplifies the process of updating and inserting documents into Algolia's search index.

crate link EasyAlgolia is a Rust crate designed for utilizing the Algolia admin client. It simplifies the process of updating and inserting documents

faizal khan 3 Mar 20, 2024
A simple and lightweight fuzzy search engine that works in memory, searching for similar strings (a pun here).

simsearch A simple and lightweight fuzzy search engine that works in memory, searching for similar strings (a pun here). Documentation Usage Add the f

Andy Lok 116 Dec 10, 2022
Lightning Fast, Ultra Relevant, and Typo-Tolerant Search Engine

MeiliSearch Website | Roadmap | Blog | LinkedIn | Twitter | Documentation | FAQ ⚡ Lightning Fast, Ultra Relevant, and Typo-Tolerant Search Engine ?? M

MeiliSearch 31.6k Dec 31, 2022
Perlin: An Efficient and Ergonomic Document Search-Engine

Table of Contents 1. Perlin Perlin Perlin is a free and open-source document search engine library build on top of perlin-core. Since the first releas

CurrySoftware GmbH 70 Dec 9, 2022
Rapidly Search and Hunt through Windows Event Logs

Rapidly Search and Hunt through Windows Event Logs Chainsaw provides a powerful ‘first-response’ capability to quickly identify threats within Windows

F-Secure Countercept 1.8k Dec 31, 2022
🔎 A simple in-memory search for collections and key-value stores.

Indicium Search ?? A simple in-memory search for collections (Vec, HashMap, BTreeMap, etc) and key-value stores. Features autocompletion. There are ma

Dylan Bowker 41 Oct 28, 2022
Configurable quick search engine shortcuts for your terminal and browser.

Quicksearch Configurable quick search engine shortcuts for your terminal and browser. Installation Run cargo install quicksearch to install Configurat

Rahul Pai 2 Oct 14, 2022
AI-powered search engine for Rust

txtai: AI-powered search engine for Rust txtai executes machine-learning workflows to transform data and build AI-powered text indices to perform simi

NeuML 69 Jan 2, 2023
A Rust API search engine

Roogle Roogle is a Rust API search engine, which allows you to search functions by names and type signatures. Progress Available Queries Function quer

Roogle 342 Dec 26, 2022
Image search example by approximate nearest-neighbor library In Rust

rust-ann-search-example Image search example by approximate nearest-neighbor library In Rust use - tensorflow 0.17.0 - pretrain ResNet50 - hora (Ru

vaaaaanquish 8 Jan 3, 2022
Python bindings for Milli, the embeddable Rust-based search engine powering Meilisearch

milli-py Python bindings for Milli, the embeddable Rust-based search engine powering Meilisearch. Due to limitations around Rust lifecycles, methods a

Alexandro Sanchez 92 Feb 21, 2023
High-performance log search engine.

NOTE: This project is under development, please do not depend on it yet as things may break. MinSQL MinSQL is a log search engine designed with simpli

High Performance, Kubernetes Native Object Storage 359 Nov 27, 2022