Files
Baradb/docs/ru/fts.md

1.6 KiB

Полнотекстовый поиск

Инвертированный индекс с ранжированием BM25 и TF-IDF для текстового поиска.

Использование

import barabadb/fts/engine

var idx = newInvertedIndex()
idx.addDocument(1, "Nim is a fast programming language")
idx.addDocument(2, "Python is popular for data science")

let results = idx.search("programming language")

let tfidf = idx.searchTfidf("programming language")

let fuzzy = idx.fuzzySearch("programing", maxDistance = 2)

let wild = idx.regexSearch("prog*")

Методы ранжирования

BM25

let bm25 = idx.searchBM25("query terms")

TF-IDF

let tfidf = idx.searchTfidf("query terms")

Функции поиска

Функция Описание
Fuzzy search Толерантность к опечаткам (расстояние Левенштейна)
Wildcard Префиксные, суффиксные и инфиксные подстановки
Regex Регулярные выражения
Phrase search Точное совпадение фразы
Boolean Операторы AND, OR, NOT

SQL интерфейс

CREATE TABLE articles (id INT PRIMARY KEY, title TEXT, body TEXT);
CREATE INDEX idx_fts ON articles(body) USING FTS;
SELECT * FROM articles WHERE body @@ 'machine learning';

Многоязычная поддержка

import barabadb/fts/multilang

var tokenizer = newTokenizer("bg")
let tokens = tokenizer.tokenize("Търсене в пълен текст")