@nahisaho/yata-scale 1.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +66 -0
- package/dist/CacheManager.d.ts +107 -0
- package/dist/CacheManager.d.ts.map +1 -0
- package/dist/CacheManager.js +343 -0
- package/dist/CacheManager.js.map +1 -0
- package/dist/IndexManager.d.ts +103 -0
- package/dist/IndexManager.d.ts.map +1 -0
- package/dist/IndexManager.js +385 -0
- package/dist/IndexManager.js.map +1 -0
- package/dist/MigrationHelper.d.ts +91 -0
- package/dist/MigrationHelper.d.ts.map +1 -0
- package/dist/MigrationHelper.js +220 -0
- package/dist/MigrationHelper.js.map +1 -0
- package/dist/QueryCoordinator.d.ts +76 -0
- package/dist/QueryCoordinator.d.ts.map +1 -0
- package/dist/QueryCoordinator.js +298 -0
- package/dist/QueryCoordinator.js.map +1 -0
- package/dist/ShardManager.d.ts +48 -0
- package/dist/ShardManager.d.ts.map +1 -0
- package/dist/ShardManager.js +193 -0
- package/dist/ShardManager.js.map +1 -0
- package/dist/SyncController.d.ts +102 -0
- package/dist/SyncController.d.ts.map +1 -0
- package/dist/SyncController.js +286 -0
- package/dist/SyncController.js.map +1 -0
- package/dist/YataScaleManager.d.ts +75 -0
- package/dist/YataScaleManager.d.ts.map +1 -0
- package/dist/YataScaleManager.js +265 -0
- package/dist/YataScaleManager.js.map +1 -0
- package/dist/cache/CacheManager.d.ts +116 -0
- package/dist/cache/CacheManager.d.ts.map +1 -0
- package/dist/cache/CacheManager.js +286 -0
- package/dist/cache/CacheManager.js.map +1 -0
- package/dist/cache/InvalidationManager.d.ts +91 -0
- package/dist/cache/InvalidationManager.d.ts.map +1 -0
- package/dist/cache/InvalidationManager.js +155 -0
- package/dist/cache/InvalidationManager.js.map +1 -0
- package/dist/cache/L1Cache.d.ts +97 -0
- package/dist/cache/L1Cache.d.ts.map +1 -0
- package/dist/cache/L1Cache.js +225 -0
- package/dist/cache/L1Cache.js.map +1 -0
- package/dist/cache/L2Cache.d.ts +93 -0
- package/dist/cache/L2Cache.d.ts.map +1 -0
- package/dist/cache/L2Cache.js +248 -0
- package/dist/cache/L2Cache.js.map +1 -0
- package/dist/cache/L3Cache.d.ts +101 -0
- package/dist/cache/L3Cache.d.ts.map +1 -0
- package/dist/cache/L3Cache.js +229 -0
- package/dist/cache/L3Cache.js.map +1 -0
- package/dist/cache/index.d.ts +12 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +11 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/errors.d.ts +255 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +515 -0
- package/dist/errors.js.map +1 -0
- package/dist/index/BPlusTreeIndex.d.ts +101 -0
- package/dist/index/BPlusTreeIndex.d.ts.map +1 -0
- package/dist/index/BPlusTreeIndex.js +310 -0
- package/dist/index/BPlusTreeIndex.js.map +1 -0
- package/dist/index/BloomFilter.d.ts +85 -0
- package/dist/index/BloomFilter.d.ts.map +1 -0
- package/dist/index/BloomFilter.js +215 -0
- package/dist/index/BloomFilter.js.map +1 -0
- package/dist/index/FullTextIndex.d.ts +87 -0
- package/dist/index/FullTextIndex.d.ts.map +1 -0
- package/dist/index/FullTextIndex.js +213 -0
- package/dist/index/FullTextIndex.js.map +1 -0
- package/dist/index/GraphIndex.d.ts +116 -0
- package/dist/index/GraphIndex.d.ts.map +1 -0
- package/dist/index/GraphIndex.js +308 -0
- package/dist/index/GraphIndex.js.map +1 -0
- package/dist/index/IndexManager.d.ts +105 -0
- package/dist/index/IndexManager.d.ts.map +1 -0
- package/dist/index/IndexManager.js +287 -0
- package/dist/index/IndexManager.js.map +1 -0
- package/dist/index/index.d.ts +12 -0
- package/dist/index/index.d.ts.map +1 -0
- package/dist/index/index.js +11 -0
- package/dist/index/index.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/query/DistributedExecutor.d.ts +78 -0
- package/dist/query/DistributedExecutor.d.ts.map +1 -0
- package/dist/query/DistributedExecutor.js +232 -0
- package/dist/query/DistributedExecutor.js.map +1 -0
- package/dist/query/QueryCoordinator.d.ts +98 -0
- package/dist/query/QueryCoordinator.d.ts.map +1 -0
- package/dist/query/QueryCoordinator.js +246 -0
- package/dist/query/QueryCoordinator.js.map +1 -0
- package/dist/query/QueryPlanner.d.ts +88 -0
- package/dist/query/QueryPlanner.d.ts.map +1 -0
- package/dist/query/QueryPlanner.js +235 -0
- package/dist/query/QueryPlanner.js.map +1 -0
- package/dist/query/WorkerPool.d.ts +108 -0
- package/dist/query/WorkerPool.d.ts.map +1 -0
- package/dist/query/WorkerPool.js +195 -0
- package/dist/query/WorkerPool.js.map +1 -0
- package/dist/query/index.d.ts +11 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +10 -0
- package/dist/query/index.js.map +1 -0
- package/dist/shard/GraphPartitionStrategy.d.ts +65 -0
- package/dist/shard/GraphPartitionStrategy.d.ts.map +1 -0
- package/dist/shard/GraphPartitionStrategy.js +208 -0
- package/dist/shard/GraphPartitionStrategy.js.map +1 -0
- package/dist/shard/HashPartitionStrategy.d.ts +56 -0
- package/dist/shard/HashPartitionStrategy.d.ts.map +1 -0
- package/dist/shard/HashPartitionStrategy.js +169 -0
- package/dist/shard/HashPartitionStrategy.js.map +1 -0
- package/dist/shard/RangePartitionStrategy.d.ts +63 -0
- package/dist/shard/RangePartitionStrategy.d.ts.map +1 -0
- package/dist/shard/RangePartitionStrategy.js +157 -0
- package/dist/shard/RangePartitionStrategy.js.map +1 -0
- package/dist/shard/Rebalancer.d.ts +70 -0
- package/dist/shard/Rebalancer.d.ts.map +1 -0
- package/dist/shard/Rebalancer.js +184 -0
- package/dist/shard/Rebalancer.js.map +1 -0
- package/dist/shard/ShardManager.d.ts +123 -0
- package/dist/shard/ShardManager.d.ts.map +1 -0
- package/dist/shard/ShardManager.js +353 -0
- package/dist/shard/ShardManager.js.map +1 -0
- package/dist/shard/ShardRouter.d.ts +102 -0
- package/dist/shard/ShardRouter.d.ts.map +1 -0
- package/dist/shard/ShardRouter.js +181 -0
- package/dist/shard/ShardRouter.js.map +1 -0
- package/dist/shard/index.d.ts +13 -0
- package/dist/shard/index.d.ts.map +1 -0
- package/dist/shard/index.js +12 -0
- package/dist/shard/index.js.map +1 -0
- package/dist/sync/ConflictResolver.d.ts +71 -0
- package/dist/sync/ConflictResolver.d.ts.map +1 -0
- package/dist/sync/ConflictResolver.js +214 -0
- package/dist/sync/ConflictResolver.js.map +1 -0
- package/dist/sync/SyncController.d.ts +150 -0
- package/dist/sync/SyncController.d.ts.map +1 -0
- package/dist/sync/SyncController.js +304 -0
- package/dist/sync/SyncController.js.map +1 -0
- package/dist/sync/VectorClock.d.ts +102 -0
- package/dist/sync/VectorClock.d.ts.map +1 -0
- package/dist/sync/VectorClock.js +189 -0
- package/dist/sync/VectorClock.js.map +1 -0
- package/dist/sync/WALManager.d.ts +120 -0
- package/dist/sync/WALManager.d.ts.map +1 -0
- package/dist/sync/WALManager.js +240 -0
- package/dist/sync/WALManager.js.map +1 -0
- package/dist/sync/index.d.ts +11 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +10 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/types.d.ts +323 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/package.json +86 -0
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @nahisaho/yata-scale - Graph Index
|
|
3
|
+
*
|
|
4
|
+
* Graph-specific indexes for efficient traversal
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Graph index for efficient traversal operations
|
|
8
|
+
*/
|
|
9
|
+
export class GraphIndex {
|
|
10
|
+
// Adjacency lists
|
|
11
|
+
outgoing = new Map();
|
|
12
|
+
incoming = new Map();
|
|
13
|
+
// Type indexes
|
|
14
|
+
byType = new Map();
|
|
15
|
+
// Edge storage
|
|
16
|
+
edges = new Map();
|
|
17
|
+
constructor() { }
|
|
18
|
+
/**
|
|
19
|
+
* Add an edge to the index
|
|
20
|
+
*/
|
|
21
|
+
addEdge(edge) {
|
|
22
|
+
// Store edge
|
|
23
|
+
this.edges.set(edge.id, edge);
|
|
24
|
+
// Add to outgoing adjacency
|
|
25
|
+
if (!this.outgoing.has(edge.sourceId)) {
|
|
26
|
+
this.outgoing.set(edge.sourceId, new Map());
|
|
27
|
+
}
|
|
28
|
+
this.outgoing.get(edge.sourceId).set(edge.targetId, edge);
|
|
29
|
+
// Add to incoming adjacency
|
|
30
|
+
if (!this.incoming.has(edge.targetId)) {
|
|
31
|
+
this.incoming.set(edge.targetId, new Map());
|
|
32
|
+
}
|
|
33
|
+
this.incoming.get(edge.targetId).set(edge.sourceId, edge);
|
|
34
|
+
// Add to type index
|
|
35
|
+
if (!this.byType.has(edge.type)) {
|
|
36
|
+
this.byType.set(edge.type, new Set());
|
|
37
|
+
}
|
|
38
|
+
this.byType.get(edge.type).add(edge.id);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Add edge from relationship
|
|
42
|
+
*/
|
|
43
|
+
addRelationship(rel) {
|
|
44
|
+
this.addEdge({
|
|
45
|
+
id: rel.id,
|
|
46
|
+
sourceId: rel.sourceId,
|
|
47
|
+
targetId: rel.targetId,
|
|
48
|
+
type: rel.type,
|
|
49
|
+
weight: rel.metadata.weight,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Remove an edge
|
|
54
|
+
*/
|
|
55
|
+
removeEdge(edgeId) {
|
|
56
|
+
const edge = this.edges.get(edgeId);
|
|
57
|
+
if (!edge) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
// Remove from adjacency lists
|
|
61
|
+
this.outgoing.get(edge.sourceId)?.delete(edge.targetId);
|
|
62
|
+
this.incoming.get(edge.targetId)?.delete(edge.sourceId);
|
|
63
|
+
// Remove from type index
|
|
64
|
+
this.byType.get(edge.type)?.delete(edge.id);
|
|
65
|
+
// Remove from storage
|
|
66
|
+
this.edges.delete(edgeId);
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get outgoing edges from a node
|
|
71
|
+
*/
|
|
72
|
+
getOutgoingEdges(nodeId) {
|
|
73
|
+
const edges = this.outgoing.get(nodeId);
|
|
74
|
+
return edges ? [...edges.values()] : [];
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get incoming edges to a node
|
|
78
|
+
*/
|
|
79
|
+
getIncomingEdges(nodeId) {
|
|
80
|
+
const edges = this.incoming.get(nodeId);
|
|
81
|
+
return edges ? [...edges.values()] : [];
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get all edges for a node (both directions)
|
|
85
|
+
*/
|
|
86
|
+
getAllEdges(nodeId) {
|
|
87
|
+
return [...this.getOutgoingEdges(nodeId), ...this.getIncomingEdges(nodeId)];
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Get outgoing neighbors
|
|
91
|
+
*/
|
|
92
|
+
getOutgoingNeighbors(nodeId) {
|
|
93
|
+
const edges = this.outgoing.get(nodeId);
|
|
94
|
+
return edges ? [...edges.keys()] : [];
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get incoming neighbors
|
|
98
|
+
*/
|
|
99
|
+
getIncomingNeighbors(nodeId) {
|
|
100
|
+
const edges = this.incoming.get(nodeId);
|
|
101
|
+
return edges ? [...edges.keys()] : [];
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get neighbors within k hops
|
|
105
|
+
*/
|
|
106
|
+
getNeighbors(nodeId, depth, direction = 'both') {
|
|
107
|
+
const visited = new Set();
|
|
108
|
+
const queue = [{ node: nodeId, dist: 0 }];
|
|
109
|
+
while (queue.length > 0) {
|
|
110
|
+
const { node, dist } = queue.shift();
|
|
111
|
+
if (dist > depth || visited.has(node)) {
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
visited.add(node);
|
|
115
|
+
if (dist < depth) {
|
|
116
|
+
const neighbors = [];
|
|
117
|
+
if (direction === 'outgoing' || direction === 'both') {
|
|
118
|
+
neighbors.push(...this.getOutgoingNeighbors(node));
|
|
119
|
+
}
|
|
120
|
+
if (direction === 'incoming' || direction === 'both') {
|
|
121
|
+
neighbors.push(...this.getIncomingNeighbors(node));
|
|
122
|
+
}
|
|
123
|
+
for (const neighbor of neighbors) {
|
|
124
|
+
if (!visited.has(neighbor)) {
|
|
125
|
+
queue.push({ node: neighbor, dist: dist + 1 });
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
visited.delete(nodeId);
|
|
131
|
+
return visited;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Find shortest path using BFS
|
|
135
|
+
*/
|
|
136
|
+
findShortestPath(source, target, maxDepth = 10) {
|
|
137
|
+
if (source === target) {
|
|
138
|
+
return { nodes: [source], edges: [], length: 0, weight: 0 };
|
|
139
|
+
}
|
|
140
|
+
const visited = new Set();
|
|
141
|
+
const queue = [
|
|
142
|
+
{ node: source, path: [source], edges: [], weight: 0 },
|
|
143
|
+
];
|
|
144
|
+
while (queue.length > 0) {
|
|
145
|
+
const { node, path, edges, weight } = queue.shift();
|
|
146
|
+
if (path.length > maxDepth + 1) {
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
if (visited.has(node)) {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
visited.add(node);
|
|
153
|
+
const outEdges = this.getOutgoingEdges(node);
|
|
154
|
+
for (const edge of outEdges) {
|
|
155
|
+
if (edge.targetId === target) {
|
|
156
|
+
return {
|
|
157
|
+
nodes: [...path, target],
|
|
158
|
+
edges: [...edges, edge.id],
|
|
159
|
+
length: path.length,
|
|
160
|
+
weight: weight + (edge.weight ?? 1),
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
if (!visited.has(edge.targetId)) {
|
|
164
|
+
queue.push({
|
|
165
|
+
node: edge.targetId,
|
|
166
|
+
path: [...path, edge.targetId],
|
|
167
|
+
edges: [...edges, edge.id],
|
|
168
|
+
weight: weight + (edge.weight ?? 1),
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Find all paths (up to maxPaths)
|
|
177
|
+
*/
|
|
178
|
+
*findAllPaths(source, target, maxDepth = 10, maxPaths = 100) {
|
|
179
|
+
let pathCount = 0;
|
|
180
|
+
const stack = [
|
|
181
|
+
{ node: source, path: [source], edges: [], weight: 0, visited: new Set([source]) },
|
|
182
|
+
];
|
|
183
|
+
while (stack.length > 0 && pathCount < maxPaths) {
|
|
184
|
+
const { node, path, edges, weight, visited } = stack.pop();
|
|
185
|
+
if (path.length > maxDepth + 1) {
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
if (node === target && path.length > 1) {
|
|
189
|
+
yield {
|
|
190
|
+
nodes: path,
|
|
191
|
+
edges,
|
|
192
|
+
length: path.length - 1,
|
|
193
|
+
weight,
|
|
194
|
+
};
|
|
195
|
+
pathCount++;
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
const outEdges = this.getOutgoingEdges(node);
|
|
199
|
+
for (const edge of outEdges) {
|
|
200
|
+
if (!visited.has(edge.targetId)) {
|
|
201
|
+
const newVisited = new Set(visited);
|
|
202
|
+
newVisited.add(edge.targetId);
|
|
203
|
+
stack.push({
|
|
204
|
+
node: edge.targetId,
|
|
205
|
+
path: [...path, edge.targetId],
|
|
206
|
+
edges: [...edges, edge.id],
|
|
207
|
+
weight: weight + (edge.weight ?? 1),
|
|
208
|
+
visited: newVisited,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Get edges by type
|
|
216
|
+
*/
|
|
217
|
+
getEdgesByType(type) {
|
|
218
|
+
const edgeIds = this.byType.get(type);
|
|
219
|
+
if (!edgeIds) {
|
|
220
|
+
return [];
|
|
221
|
+
}
|
|
222
|
+
const result = [];
|
|
223
|
+
for (const id of edgeIds) {
|
|
224
|
+
const edge = this.edges.get(id);
|
|
225
|
+
if (edge) {
|
|
226
|
+
result.push(edge);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return result;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Check if edge exists between two nodes
|
|
233
|
+
*/
|
|
234
|
+
hasEdge(sourceId, targetId) {
|
|
235
|
+
return this.outgoing.get(sourceId)?.has(targetId) ?? false;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Get edge between two nodes
|
|
239
|
+
*/
|
|
240
|
+
getEdge(sourceId, targetId) {
|
|
241
|
+
return this.outgoing.get(sourceId)?.get(targetId);
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Get node degree
|
|
245
|
+
*/
|
|
246
|
+
getDegree(nodeId, direction = 'total') {
|
|
247
|
+
const inDegree = this.incoming.get(nodeId)?.size ?? 0;
|
|
248
|
+
const outDegree = this.outgoing.get(nodeId)?.size ?? 0;
|
|
249
|
+
switch (direction) {
|
|
250
|
+
case 'in':
|
|
251
|
+
return inDegree;
|
|
252
|
+
case 'out':
|
|
253
|
+
return outDegree;
|
|
254
|
+
case 'total':
|
|
255
|
+
return inDegree + outDegree;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Clear the index
|
|
260
|
+
*/
|
|
261
|
+
clear() {
|
|
262
|
+
this.outgoing.clear();
|
|
263
|
+
this.incoming.clear();
|
|
264
|
+
this.byType.clear();
|
|
265
|
+
this.edges.clear();
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Get edge count
|
|
269
|
+
*/
|
|
270
|
+
get size() {
|
|
271
|
+
return this.edges.size;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Get node count
|
|
275
|
+
*/
|
|
276
|
+
get nodeCount() {
|
|
277
|
+
const nodes = new Set();
|
|
278
|
+
for (const edge of this.edges.values()) {
|
|
279
|
+
nodes.add(edge.sourceId);
|
|
280
|
+
nodes.add(edge.targetId);
|
|
281
|
+
}
|
|
282
|
+
return nodes.size;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Get index statistics
|
|
286
|
+
*/
|
|
287
|
+
getStats() {
|
|
288
|
+
return {
|
|
289
|
+
name: 'graph',
|
|
290
|
+
type: 'graph',
|
|
291
|
+
entryCount: this.edges.size,
|
|
292
|
+
sizeBytes: this.estimateSize(),
|
|
293
|
+
hitRate: 0,
|
|
294
|
+
lastUpdated: new Date(),
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Estimate memory size
|
|
299
|
+
*/
|
|
300
|
+
estimateSize() {
|
|
301
|
+
// Rough estimate
|
|
302
|
+
return (this.edges.size * 100 + // Edge storage
|
|
303
|
+
this.outgoing.size * 50 + // Outgoing adjacency
|
|
304
|
+
this.incoming.size * 50 // Incoming adjacency
|
|
305
|
+
);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=GraphIndex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphIndex.js","sourceRoot":"","sources":["../../src/index/GraphIndex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @nahisaho/yata-scale - Index Manager
|
|
3
|
+
*
|
|
4
|
+
* Manages all indexes for a shard
|
|
5
|
+
*/
|
|
6
|
+
import { type Result } from 'neverthrow';
|
|
7
|
+
import type { IndexConfig, IndexStats, Entity, Relationship } from '../types.js';
|
|
8
|
+
import { IndexError, IndexNotFoundError } from '../errors.js';
|
|
9
|
+
import { GraphIndex } from './GraphIndex.js';
|
|
10
|
+
import { BloomFilter } from './BloomFilter.js';
|
|
11
|
+
/**
|
|
12
|
+
* Index manager for coordinating multiple indexes
|
|
13
|
+
*/
|
|
14
|
+
export declare class IndexManager {
|
|
15
|
+
private indexes;
|
|
16
|
+
private entityIndex;
|
|
17
|
+
private bloomFilter;
|
|
18
|
+
private graphIndex;
|
|
19
|
+
constructor();
|
|
20
|
+
/**
|
|
21
|
+
* Create a new index
|
|
22
|
+
*/
|
|
23
|
+
createIndex(config: IndexConfig): Result<void, IndexError>;
|
|
24
|
+
/**
|
|
25
|
+
* Create index by type
|
|
26
|
+
*/
|
|
27
|
+
private createIndexByType;
|
|
28
|
+
/**
|
|
29
|
+
* Drop an index
|
|
30
|
+
*/
|
|
31
|
+
dropIndex(name: string): Result<void, IndexNotFoundError>;
|
|
32
|
+
/**
|
|
33
|
+
* Index an entity
|
|
34
|
+
*/
|
|
35
|
+
indexEntity(entity: Entity): void;
|
|
36
|
+
/**
|
|
37
|
+
* Index entity in a custom index
|
|
38
|
+
*/
|
|
39
|
+
private indexEntityInCustomIndex;
|
|
40
|
+
/**
|
|
41
|
+
* Remove entity from indexes
|
|
42
|
+
*/
|
|
43
|
+
removeEntity(entityId: string): void;
|
|
44
|
+
/**
|
|
45
|
+
* Remove entity from custom index
|
|
46
|
+
*/
|
|
47
|
+
private removeEntityFromCustomIndex;
|
|
48
|
+
/**
|
|
49
|
+
* Index a relationship
|
|
50
|
+
*/
|
|
51
|
+
indexRelationship(relationship: Relationship): void;
|
|
52
|
+
/**
|
|
53
|
+
* Remove a relationship from indexes
|
|
54
|
+
*/
|
|
55
|
+
removeRelationship(relationshipId: string): void;
|
|
56
|
+
/**
|
|
57
|
+
* Check if entity might exist (using bloom filter)
|
|
58
|
+
*/
|
|
59
|
+
mightExist(entityId: string): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Get entity by ID
|
|
62
|
+
*/
|
|
63
|
+
getEntity(entityId: string): Entity | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Search by attribute using B+Tree index
|
|
66
|
+
*/
|
|
67
|
+
searchByAttribute(indexName: string, value: string): Result<string[], IndexNotFoundError>;
|
|
68
|
+
/**
|
|
69
|
+
* Full-text search
|
|
70
|
+
*/
|
|
71
|
+
searchFullText(indexName: string, query: string, limit?: number): Result<string[], IndexNotFoundError>;
|
|
72
|
+
/**
|
|
73
|
+
* Get graph index
|
|
74
|
+
*/
|
|
75
|
+
getGraphIndex(): GraphIndex;
|
|
76
|
+
/**
|
|
77
|
+
* Get bloom filter
|
|
78
|
+
*/
|
|
79
|
+
getBloomFilter(): BloomFilter;
|
|
80
|
+
/**
|
|
81
|
+
* Extract key from entity for indexing
|
|
82
|
+
*/
|
|
83
|
+
private extractKey;
|
|
84
|
+
/**
|
|
85
|
+
* Extract text content for full-text indexing
|
|
86
|
+
*/
|
|
87
|
+
private extractTextContent;
|
|
88
|
+
/**
|
|
89
|
+
* Get all index statistics
|
|
90
|
+
*/
|
|
91
|
+
getAllStats(): IndexStats[];
|
|
92
|
+
/**
|
|
93
|
+
* Clear all indexes
|
|
94
|
+
*/
|
|
95
|
+
clear(): void;
|
|
96
|
+
/**
|
|
97
|
+
* Get entity count
|
|
98
|
+
*/
|
|
99
|
+
get entityCount(): number;
|
|
100
|
+
/**
|
|
101
|
+
* Get relationship count
|
|
102
|
+
*/
|
|
103
|
+
get relationshipCount(): number;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=IndexManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexManager.d.ts","sourceRoot":"","sources":["../../src/index/IndexManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EAEV,MAAM,EACN,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAG9D,OAAO,EAAE,UAAU,EAAa,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAU/C;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAa;;IAY/B;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC;IAoB1D;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC;IASzD;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAajC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA8BhC;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAYpC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAgBnC;;OAEG;IACH,iBAAiB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAWnD;;OAEG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAIhD;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIrC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI/C;;OAEG;IACH,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC;IAWvC;;OAEG;IACH,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAW,GACjB,MAAM,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC;IAWvC;;OAEG;IACH,aAAa,IAAI,UAAU;IAI3B;;OAEG;IACH,cAAc,IAAI,WAAW;IAI7B;;OAEG;IACH,OAAO,CAAC,UAAU;IAiBlB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,WAAW,IAAI,UAAU,EAAE;IAgB3B;;OAEG;IACH,KAAK,IAAI,IAAI;IAYb;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAE9B;CACF"}
|