Update documentation and clients for v1.1.0
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
Documentation updates: - Fix v0.1.0 → v1.1.0 version numbers in en, ru, fa, zh docs - Add missing Window Functions, Multi-Tenant ERP, Supported Keywords sections to ru, fa, zh baraql.md (~105 lines each) - Expand Turkish and Arabic baraql.md (110 → 268 lines) - Expand Turkish and Arabic installation.md (62 → 307 lines) - Add new Bulgarian documentation files (18 new files) Client updates: - Python: Full async/await rewrite with asyncio, request queueing - Rust: Full async/await rewrite with tokio, async examples - Nim: Update README to v1.1.0 - All clients now support async patterns consistently
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
# Cross-Modal Заявки
|
||||
|
||||
Уникалната способност на BaraDB да изпълнява заявки, обхващащи множество storage двигатели в една унифицирана BaraQL заявка.
|
||||
|
||||
## Преглед
|
||||
|
||||
Традиционните бази данни изискват отделни заявки и join-ове на ниво приложение при работа с различни модели на данни. Cross-modal query planner-ът на BaraDB оптимизира изпълнението през:
|
||||
|
||||
- **Документи/KV** (LSM-Tree) — структурирани записи
|
||||
- **Графи** (Adjacency List) — връзки
|
||||
- **Вектори** (HNSW/IVF-PQ) — търсене на прилика
|
||||
- **Пълен текст** (Inverted Index) — текстово търсене
|
||||
- **Колонково** — аналитични агрегати
|
||||
|
||||
## Примери за Заявки
|
||||
|
||||
### Векторно + Пълнотекстово (Семантично + Ключово Търсене)
|
||||
|
||||
```sql
|
||||
SELECT title, score
|
||||
FROM articles
|
||||
WHERE MATCH(body) AGAINST('machine learning')
|
||||
ORDER BY cosine_distance(embedding, [0.1, 0.2, 0.3, ...])
|
||||
LIMIT 10;
|
||||
```
|
||||
|
||||
### Графово + Векторно (Социални Препоръки)
|
||||
|
||||
```sql
|
||||
MATCH (u:User)-[:KNOWS]->(friend:User)
|
||||
WHERE u.name = 'Alice'
|
||||
ORDER BY cosine_distance(friend.taste_vector, u.taste_vector)
|
||||
RETURN friend.name, friend.age;
|
||||
```
|
||||
|
||||
### Документно + Графово (Обогатяване на Същности)
|
||||
|
||||
```sql
|
||||
SELECT o.id, o.total, c.name,
|
||||
(SELECT count(*) FROM orders WHERE customer_id = c.id) as order_count
|
||||
FROM orders o
|
||||
MATCH (c:Customer)-[:PLACED]->(o)
|
||||
WHERE o.date > '2025-01-01';
|
||||
```
|
||||
|
||||
## Cross-Modal Engine API
|
||||
|
||||
```nim
|
||||
import barabadb/core/crossmodal
|
||||
|
||||
var engine = newCrossModalEngine("/tmp/baradb")
|
||||
|
||||
# Документни операции
|
||||
engine.put("key1", cast[seq[byte]]("value1"))
|
||||
let (found, val) = engine.get("key1")
|
||||
|
||||
# Векторни операции
|
||||
engine.insertVector(1, @[1.0'f32, 0.0'f32, ...], {"cat": "A"}.toTable)
|
||||
let results = engine.searchVector(@[1.0'f32, 0.1'f32, ...], 2)
|
||||
|
||||
# Графови операции
|
||||
let n1 = engine.addNode("Person")
|
||||
let n2 = engine.addNode("Person")
|
||||
discard engine.addEdge(n1, n2, "knows")
|
||||
let traversal = engine.traverseGraph(n1, "bfs")
|
||||
|
||||
# FTS операции
|
||||
engine.indexText(1, "Nim programming language")
|
||||
let ftsResults = engine.searchText("programming")
|
||||
|
||||
# Хибридно търсене
|
||||
var query = newCrossModalQuery(qmHybrid)
|
||||
query.vector = @[1.0'f32, 0.0'f32]
|
||||
query.searchQuery = "fast"
|
||||
query.vecWeight = 1.0
|
||||
query.ftsWeight = 1.0
|
||||
let hybridResult = engine.hybridSearch(query)
|
||||
```
|
||||
|
||||
## 2PC Транзакции
|
||||
|
||||
Cross-modal engine-ът поддържа two-phase commit за атомарни операции през множество storage системи:
|
||||
|
||||
```nim
|
||||
var txn = newTPCTransaction(1)
|
||||
txn.addParticipant("storage")
|
||||
txn.addParticipant("vector")
|
||||
txn.addParticipant("graph")
|
||||
|
||||
txn.prepare() # Всички участници потвърждават, че могат да комитнат
|
||||
txn.commit() # Атомарен commit през всички участници
|
||||
```
|
||||
|
||||
## Формална Верификация
|
||||
|
||||
Cross-modal консистентността е формално специфицирана в TLA+:
|
||||
|
||||
- **Спецификация:** `formal-verification/crossmodal.tla`
|
||||
- **Проверени свойства:**
|
||||
- `MetadataVectorConsistency` — insertVector обновява метаданни за филтрирано търсене
|
||||
- `CrossModalAtomicity` — всички участници комитват или всички абортират
|
||||
Reference in New Issue
Block a user