From 0a7a7bc0d154e7a7eaf0f5682b9a3109f017e413 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20Budiseli=C4=87?= Date: Sat, 13 Jan 2024 08:43:33 +0100 Subject: [PATCH] Add Tantivy ADR (#1633) --- ADRs/001_tantivy.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 ADRs/001_tantivy.md diff --git a/ADRs/001_tantivy.md b/ADRs/001_tantivy.md new file mode 100644 index 000000000..ac887c861 --- /dev/null +++ b/ADRs/001_tantivy.md @@ -0,0 +1,32 @@ +# Tantivy ADR + +**Author** +Marko Budiselic (github.com/gitbuda) + +**Status** +APPROVED + +**Date** +January 5, 2024 + +**Problem** + +For some of Memgraph workloads, text search is a required feature. We don't +want to build a new text search engine because that's not Memgraph's core +value. + +**Criteria** + +- easy integration with our C++ codebase +- ability to operate in-memory and on-disk +- sufficient features (regex, full-text search, fuzzy search, aggregations over + text data) +- production-ready + +**Decision** + +All known C++ libraries are not production-ready. Recent Rust libraries, in +particular [Tantivy](https://github.com/quickwit-oss/tantivy), seem to provide +much more features, it is production ready. The way how we'll integrate Tantivy +into the current Memgraph codebase is via +[cxx](https://github.com/dtolnay/cxx). **We select Tantivy.**