@delali/narsil 0.1.7 → 0.1.9
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 +800 -111
- package/dist/adapters/filesystem.d.ts +1 -1
- package/dist/adapters/filesystem.mjs +46 -2
- package/dist/adapters/indexeddb.d.ts +1 -1
- package/dist/adapters/indexeddb.mjs +1 -1
- package/dist/adapters/memory.d.ts +1 -1
- package/dist/{adapters-BbRkoiu9.d.ts → adapters-Bo2JQg8b.d.ts} +2 -1
- package/dist/chunk-ALB35PRQ.mjs +98 -0
- package/dist/chunk-KMMJMDUA.mjs +44 -0
- package/dist/chunk-RQLXC2YS.mjs +269 -0
- package/dist/chunk-S7RJJMHI.mjs +1086 -0
- package/dist/chunk-SVDEEMO6.mjs +7023 -0
- package/dist/{chunk-I24SGLFS.mjs → chunk-TW6BXTOL.mjs} +5 -1
- package/dist/{chunk-KHL4RPC3.mjs → chunk-VWF7RKSF.mjs} +2566 -2282
- package/dist/chunk-WISGW24C.mjs +455 -0
- package/dist/config-DX--2Owg.d.ts +472 -0
- package/dist/direct-executor-KC5O5D2R.mjs +4 -0
- package/dist/distribution/coordinator/etcd.d.ts +16 -0
- package/dist/distribution/coordinator/etcd.mjs +2 -0
- package/dist/distribution/coordinator/in-memory.d.ts +7 -0
- package/dist/distribution/coordinator/in-memory.mjs +1 -0
- package/dist/distribution.d.ts +122 -0
- package/dist/distribution.mjs +7410 -0
- package/dist/embeddings/openai.d.ts +1 -1
- package/dist/embeddings/openai.mjs +6 -1
- package/dist/index.browser.mjs +11750 -7532
- package/dist/index.d.ts +6 -450
- package/dist/index.mjs +7 -3236
- package/dist/invalidation/broadcast-channel.d.ts +1 -1
- package/dist/invalidation/filesystem.d.ts +1 -1
- package/dist/invalidation/noop.d.ts +1 -1
- package/dist/{language-ClUGLuoC.d.ts → language-ONQ3iVDf.d.ts} +1 -0
- package/dist/languages/arabic.d.ts +1 -1
- package/dist/languages/armenian.d.ts +1 -1
- package/dist/languages/bulgarian.d.ts +1 -1
- package/dist/languages/chinese.d.ts +1 -1
- package/dist/languages/dagbani.d.ts +1 -1
- package/dist/languages/danish.d.ts +1 -1
- package/dist/languages/dutch.d.ts +1 -1
- package/dist/languages/english.d.ts +1 -1
- package/dist/languages/english.mjs +1 -1
- package/dist/languages/ewe.d.ts +1 -1
- package/dist/languages/finnish.d.ts +1 -1
- package/dist/languages/french.d.ts +1 -1
- package/dist/languages/ga.d.ts +1 -1
- package/dist/languages/german.d.ts +1 -1
- package/dist/languages/greek.d.ts +1 -1
- package/dist/languages/hausa.d.ts +1 -1
- package/dist/languages/hindi.d.ts +1 -1
- package/dist/languages/hungarian.d.ts +1 -1
- package/dist/languages/igbo.d.ts +1 -1
- package/dist/languages/indonesian.d.ts +1 -1
- package/dist/languages/irish.d.ts +1 -1
- package/dist/languages/italian.d.ts +1 -1
- package/dist/languages/japanese.d.ts +1 -1
- package/dist/languages/nepali.d.ts +1 -1
- package/dist/languages/norwegian.d.ts +1 -1
- package/dist/languages/portuguese.d.ts +1 -1
- package/dist/languages/romanian.d.ts +1 -1
- package/dist/languages/russian.d.ts +1 -1
- package/dist/languages/sanskrit.d.ts +1 -1
- package/dist/languages/serbian.d.ts +1 -1
- package/dist/languages/slovenian.d.ts +1 -1
- package/dist/languages/spanish.d.ts +1 -1
- package/dist/languages/swahili.d.ts +1 -1
- package/dist/languages/swedish.d.ts +1 -1
- package/dist/languages/tamil.d.ts +1 -1
- package/dist/languages/turkish.d.ts +1 -1
- package/dist/languages/twi.d.ts +1 -1
- package/dist/languages/ukrainian.d.ts +1 -1
- package/dist/languages/yoruba.d.ts +1 -1
- package/dist/languages/zulu.d.ts +1 -1
- package/dist/narsil-B3jKyXCr.d.ts +72 -0
- package/dist/persistence/durability/checkpoint-worker.d.ts +48 -0
- package/dist/persistence/durability/checkpoint-worker.mjs +59 -0
- package/dist/schema-C3VhNvfw.d.ts +60 -0
- package/dist/serialization/crc32-worker.d.ts +20 -0
- package/dist/serialization/crc32-worker.mjs +61 -0
- package/dist/server.d.ts +218 -0
- package/dist/server.mjs +1184 -0
- package/dist/types-CTVVm4GG.d.ts +73 -0
- package/dist/vector/hnsw-build-worker.mjs +1 -1
- package/dist/workers/entry.mjs +1 -1
- package/package.json +38 -2
- package/dist/chunk-R2C2EQGO.mjs +0 -53
- package/dist/chunk-VVORJOXR.mjs +0 -759
- package/dist/direct-executor-LBJLGMJ2.mjs +0 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,463 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
export { a as
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
id?: string;
|
|
7
|
-
};
|
|
8
|
-
type FieldType = 'string' | 'number' | 'boolean' | 'enum' | 'geopoint' | `vector[${number}]` | 'string[]' | 'number[]' | 'boolean[]' | 'enum[]';
|
|
9
|
-
type SchemaDefinition = {
|
|
10
|
-
[field: string]: FieldType | SchemaDefinition;
|
|
11
|
-
};
|
|
12
|
-
type VectorQuantizationMode = 'sq8' | 'none';
|
|
13
|
-
interface VectorIndexConfig {
|
|
14
|
-
threshold?: number;
|
|
15
|
-
filterThreshold?: number;
|
|
16
|
-
hnswConfig?: {
|
|
17
|
-
m?: number;
|
|
18
|
-
efConstruction?: number;
|
|
19
|
-
metric?: 'cosine' | 'dotProduct' | 'euclidean';
|
|
20
|
-
};
|
|
21
|
-
quantization?: VectorQuantizationMode;
|
|
22
|
-
}
|
|
23
|
-
interface EmbeddingFieldConfig {
|
|
24
|
-
adapter?: EmbeddingAdapter;
|
|
25
|
-
fields: Record<string, string | string[]>;
|
|
26
|
-
}
|
|
27
|
-
interface IndexConfig {
|
|
28
|
-
schema: SchemaDefinition;
|
|
29
|
-
language?: string;
|
|
30
|
-
partitions?: PartitionConfig;
|
|
31
|
-
defaultScoring?: ScoringMode;
|
|
32
|
-
bm25?: BM25Params;
|
|
33
|
-
stopWords?: Set<string> | ((defaults: Set<string>) => Set<string>);
|
|
34
|
-
tokenizer?: CustomTokenizer;
|
|
35
|
-
trackPositions?: boolean;
|
|
36
|
-
vectorPromotion?: VectorIndexConfig;
|
|
37
|
-
strict?: boolean;
|
|
38
|
-
embedding?: EmbeddingFieldConfig;
|
|
39
|
-
required?: string[];
|
|
40
|
-
}
|
|
41
|
-
interface BM25Params {
|
|
42
|
-
k1?: number;
|
|
43
|
-
b?: number;
|
|
44
|
-
}
|
|
45
|
-
interface CustomTokenizer {
|
|
46
|
-
tokenize(text: string): Array<{
|
|
47
|
-
token: string;
|
|
48
|
-
position: number;
|
|
49
|
-
}>;
|
|
50
|
-
}
|
|
51
|
-
interface PartitionConfig {
|
|
52
|
-
maxDocsPerPartition?: number;
|
|
53
|
-
maxPartitions?: number;
|
|
54
|
-
}
|
|
55
|
-
type ScoringMode = 'local' | 'dfs' | 'broadcast';
|
|
56
|
-
interface InsertOptions {
|
|
57
|
-
skipClone?: boolean;
|
|
58
|
-
}
|
|
1
|
+
export { A as ArrayFilter, B as BatchResult, C as ComparisonFilter, E as ErrorCode, a as ErrorCodes, F as FacetConfig, b as FacetResult, c as FilterExpression, d as FlushConfig, G as GeoPolygonFilter, e as GeoRadiusFilter, f as GroupConfig, g as GroupReducer, h as GroupResult, H as HighlightConfig, i as HighlightMatch, j as Hit, k as HybridConfig, I as IndexContext, l as IndexInfo, m as IndexStats, n as InsertContext, M as MemoryStats, N as NarsilConfig, o as NarsilError, p as NarsilPlugin, P as PartitionContext, q as PartitionStatsResult, r as PreflightResult, s as PresenceFilter, t as ProcessMemoryReport, Q as QueryParams, u as QueryResult, R as RemoveContext, S as ScoreComponents, v as SearchContext, w as SearchMode, x as StringFilter, y as SuggestParams, z as SuggestResult, T as TermMatchPolicy, U as UpdateContext, V as VectorMaintenanceResult, D as VectorQueryConfig, W as WorkerConfig, J as WorkerContext } from './config-DX--2Owg.js';
|
|
2
|
+
import { L as LanguageModule } from './language-ONQ3iVDf.js';
|
|
3
|
+
export { N as Narsil, a as NarsilEventMap, c as createNarsil } from './narsil-B3jKyXCr.js';
|
|
4
|
+
export { E as EmbeddingAdapter, I as InvalidationAdapter, a as InvalidationEvent, P as PartitionStatistics, b as PersistenceAdapter } from './adapters-Bo2JQg8b.js';
|
|
5
|
+
export { A as AnyDocument, B as BM25Params, C as CustomTokenizer, E as EmbeddingFieldConfig, F as FieldType, I as IndexConfig, a as InsertOptions, P as PartitionConfig, S as SchemaDefinition, b as ScoringMode } from './schema-C3VhNvfw.js';
|
|
59
6
|
|
|
60
7
|
declare function configureNormalizationCache(maxSize: number): void;
|
|
61
8
|
declare function clearNormalizationCache(): void;
|
|
62
9
|
declare function resetNormalizationCache(): void;
|
|
63
10
|
declare function getNormalizationCacheSize(): number;
|
|
64
11
|
|
|
65
|
-
declare const ErrorCodes: {
|
|
66
|
-
readonly SCHEMA_INVALID_TYPE: "SCHEMA_INVALID_TYPE";
|
|
67
|
-
readonly SCHEMA_MISSING_FIELD: "SCHEMA_MISSING_FIELD";
|
|
68
|
-
readonly SCHEMA_DEPTH_EXCEEDED: "SCHEMA_DEPTH_EXCEEDED";
|
|
69
|
-
readonly SCHEMA_INVALID_VECTOR_DIMENSION: "SCHEMA_INVALID_VECTOR_DIMENSION";
|
|
70
|
-
readonly SCHEMA_INVALID_GEOPOINT: "SCHEMA_INVALID_GEOPOINT";
|
|
71
|
-
readonly DOC_NOT_FOUND: "DOC_NOT_FOUND";
|
|
72
|
-
readonly DOC_ALREADY_EXISTS: "DOC_ALREADY_EXISTS";
|
|
73
|
-
readonly DOC_VALIDATION_FAILED: "DOC_VALIDATION_FAILED";
|
|
74
|
-
readonly INDEX_NOT_FOUND: "INDEX_NOT_FOUND";
|
|
75
|
-
readonly INDEX_ALREADY_EXISTS: "INDEX_ALREADY_EXISTS";
|
|
76
|
-
readonly PARTITION_CORRUPTED: "PARTITION_CORRUPTED";
|
|
77
|
-
readonly PARTITION_REBALANCING_BACKPRESSURE: "PARTITION_REBALANCING_BACKPRESSURE";
|
|
78
|
-
readonly WORKER_CRASHED: "WORKER_CRASHED";
|
|
79
|
-
readonly WORKER_BUSY: "WORKER_BUSY";
|
|
80
|
-
readonly WORKER_TIMEOUT: "WORKER_TIMEOUT";
|
|
81
|
-
readonly PERSISTENCE_SAVE_FAILED: "PERSISTENCE_SAVE_FAILED";
|
|
82
|
-
readonly PERSISTENCE_LOAD_FAILED: "PERSISTENCE_LOAD_FAILED";
|
|
83
|
-
readonly PERSISTENCE_DELETE_FAILED: "PERSISTENCE_DELETE_FAILED";
|
|
84
|
-
readonly PERSISTENCE_CRC_MISMATCH: "PERSISTENCE_CRC_MISMATCH";
|
|
85
|
-
readonly SEARCH_INVALID_FIELD: "SEARCH_INVALID_FIELD";
|
|
86
|
-
readonly SEARCH_INVALID_VECTOR_SIZE: "SEARCH_INVALID_VECTOR_SIZE";
|
|
87
|
-
readonly VECTOR_DIMENSION_MISMATCH: "VECTOR_DIMENSION_MISMATCH";
|
|
88
|
-
readonly SEARCH_INVALID_FILTER: "SEARCH_INVALID_FILTER";
|
|
89
|
-
readonly SEARCH_INVALID_MODE: "SEARCH_INVALID_MODE";
|
|
90
|
-
readonly SEARCH_INVALID_CURSOR: "SEARCH_INVALID_CURSOR";
|
|
91
|
-
readonly LANGUAGE_NOT_SUPPORTED: "LANGUAGE_NOT_SUPPORTED";
|
|
92
|
-
readonly ENVELOPE_VERSION_MISMATCH: "ENVELOPE_VERSION_MISMATCH";
|
|
93
|
-
readonly ENVELOPE_INVALID_MAGIC: "ENVELOPE_INVALID_MAGIC";
|
|
94
|
-
readonly PARTITION_CAPACITY_EXCEEDED: "PARTITION_CAPACITY_EXCEEDED";
|
|
95
|
-
readonly EMBEDDING_FAILED: "EMBEDDING_FAILED";
|
|
96
|
-
readonly EMBEDDING_DIMENSION_MISMATCH: "EMBEDDING_DIMENSION_MISMATCH";
|
|
97
|
-
readonly EMBEDDING_NO_SOURCE: "EMBEDDING_NO_SOURCE";
|
|
98
|
-
readonly EMBEDDING_CONFIG_INVALID: "EMBEDDING_CONFIG_INVALID";
|
|
99
|
-
readonly DOC_MISSING_REQUIRED_FIELD: "DOC_MISSING_REQUIRED_FIELD";
|
|
100
|
-
readonly CONFIG_INVALID: "CONFIG_INVALID";
|
|
101
|
-
};
|
|
102
|
-
type ErrorCode = (typeof ErrorCodes)[keyof typeof ErrorCodes];
|
|
103
|
-
declare class NarsilError extends Error {
|
|
104
|
-
readonly code: ErrorCode;
|
|
105
|
-
readonly details: Record<string, unknown>;
|
|
106
|
-
constructor(code: ErrorCode, message: string, details?: Record<string, unknown>);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
12
|
declare function registerLanguage(module: LanguageModule): void;
|
|
110
13
|
declare function getLanguage(name: string): LanguageModule;
|
|
111
14
|
|
|
112
|
-
interface QueryResult<T = AnyDocument> {
|
|
113
|
-
hits: Array<Hit<T>>;
|
|
114
|
-
count: number;
|
|
115
|
-
elapsed: number;
|
|
116
|
-
cursor?: string;
|
|
117
|
-
facets?: Record<string, FacetResult>;
|
|
118
|
-
groups?: GroupResult[];
|
|
119
|
-
}
|
|
120
|
-
interface Hit<T = AnyDocument> {
|
|
121
|
-
id: string;
|
|
122
|
-
score: number;
|
|
123
|
-
document: T;
|
|
124
|
-
scoreComponents?: ScoreComponents;
|
|
125
|
-
highlights?: Record<string, HighlightMatch>;
|
|
126
|
-
}
|
|
127
|
-
interface ScoreComponents {
|
|
128
|
-
termFrequencies: Record<string, number>;
|
|
129
|
-
fieldLengths: Record<string, number>;
|
|
130
|
-
idf: Record<string, number>;
|
|
131
|
-
}
|
|
132
|
-
interface HighlightMatch {
|
|
133
|
-
snippet: string;
|
|
134
|
-
positions: Array<{
|
|
135
|
-
start: number;
|
|
136
|
-
end: number;
|
|
137
|
-
}>;
|
|
138
|
-
}
|
|
139
|
-
interface FacetResult {
|
|
140
|
-
values: Record<string, number>;
|
|
141
|
-
count: number;
|
|
142
|
-
}
|
|
143
|
-
interface GroupResult {
|
|
144
|
-
values: Record<string, unknown>;
|
|
145
|
-
hits: Array<Hit>;
|
|
146
|
-
}
|
|
147
|
-
interface PreflightResult {
|
|
148
|
-
count: number;
|
|
149
|
-
elapsed: number;
|
|
150
|
-
}
|
|
151
|
-
interface BatchResult {
|
|
152
|
-
succeeded: string[];
|
|
153
|
-
failed: Array<{
|
|
154
|
-
docId: string;
|
|
155
|
-
error: NarsilError;
|
|
156
|
-
}>;
|
|
157
|
-
}
|
|
158
|
-
interface IndexStats {
|
|
159
|
-
documentCount: number;
|
|
160
|
-
partitionCount: number;
|
|
161
|
-
memoryBytes: number;
|
|
162
|
-
indexSizeBytes: number;
|
|
163
|
-
language: string;
|
|
164
|
-
schema: SchemaDefinition;
|
|
165
|
-
}
|
|
166
|
-
interface IndexInfo {
|
|
167
|
-
name: string;
|
|
168
|
-
documentCount: number;
|
|
169
|
-
partitionCount: number;
|
|
170
|
-
language: string;
|
|
171
|
-
}
|
|
172
|
-
interface PartitionStatsResult {
|
|
173
|
-
partitionId: number;
|
|
174
|
-
documentCount: number;
|
|
175
|
-
estimatedMemoryBytes: number;
|
|
176
|
-
}
|
|
177
|
-
interface SuggestResult {
|
|
178
|
-
terms: Array<{
|
|
179
|
-
term: string;
|
|
180
|
-
documentFrequency: number;
|
|
181
|
-
}>;
|
|
182
|
-
elapsed: number;
|
|
183
|
-
}
|
|
184
|
-
interface MemoryStats {
|
|
185
|
-
totalBytes: number;
|
|
186
|
-
workers: Array<{
|
|
187
|
-
workerId: number;
|
|
188
|
-
heapUsed: number;
|
|
189
|
-
heapTotal: number;
|
|
190
|
-
external: number;
|
|
191
|
-
}>;
|
|
192
|
-
}
|
|
193
|
-
interface VectorMaintenanceResult {
|
|
194
|
-
fieldName: string;
|
|
195
|
-
tombstoneRatio: number;
|
|
196
|
-
graphCount: number;
|
|
197
|
-
bufferSize: number;
|
|
198
|
-
building: boolean;
|
|
199
|
-
estimatedCompactMs: number;
|
|
200
|
-
estimatedOptimizeMs: number;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
type ComparisonFilter = {
|
|
204
|
-
eq?: number | string | boolean;
|
|
205
|
-
ne?: number | string | boolean;
|
|
206
|
-
gt?: number;
|
|
207
|
-
lt?: number;
|
|
208
|
-
gte?: number;
|
|
209
|
-
lte?: number;
|
|
210
|
-
between?: [number, number];
|
|
211
|
-
};
|
|
212
|
-
type StringFilter = ComparisonFilter & {
|
|
213
|
-
in?: string[];
|
|
214
|
-
nin?: string[];
|
|
215
|
-
startsWith?: string;
|
|
216
|
-
endsWith?: string;
|
|
217
|
-
};
|
|
218
|
-
type ArrayFilter = {
|
|
219
|
-
containsAll?: (string | number | boolean)[];
|
|
220
|
-
matchesAny?: (string | number | boolean)[];
|
|
221
|
-
size?: ComparisonFilter;
|
|
222
|
-
};
|
|
223
|
-
type PresenceFilter = {
|
|
224
|
-
exists?: boolean;
|
|
225
|
-
notExists?: boolean;
|
|
226
|
-
isEmpty?: boolean;
|
|
227
|
-
isNotEmpty?: boolean;
|
|
228
|
-
};
|
|
229
|
-
type GeoRadiusFilter = {
|
|
230
|
-
radius: {
|
|
231
|
-
lat: number;
|
|
232
|
-
lon: number;
|
|
233
|
-
distance: number;
|
|
234
|
-
unit: 'km' | 'mi' | 'm';
|
|
235
|
-
inside?: boolean;
|
|
236
|
-
highPrecision?: boolean;
|
|
237
|
-
};
|
|
238
|
-
};
|
|
239
|
-
type GeoPolygonFilter = {
|
|
240
|
-
polygon: {
|
|
241
|
-
points: Array<{
|
|
242
|
-
lat: number;
|
|
243
|
-
lon: number;
|
|
244
|
-
}>;
|
|
245
|
-
inside?: boolean;
|
|
246
|
-
};
|
|
247
|
-
};
|
|
248
|
-
type GeoFilter = GeoRadiusFilter | GeoPolygonFilter;
|
|
249
|
-
type FieldFilter = ComparisonFilter | StringFilter | ArrayFilter | PresenceFilter | GeoFilter;
|
|
250
|
-
type FilterExpression = {
|
|
251
|
-
fields?: Record<string, FieldFilter>;
|
|
252
|
-
and?: FilterExpression[];
|
|
253
|
-
or?: FilterExpression[];
|
|
254
|
-
not?: FilterExpression;
|
|
255
|
-
};
|
|
256
|
-
|
|
257
|
-
type SearchMode = 'fulltext' | 'vector' | 'hybrid';
|
|
258
|
-
type TermMatchPolicy = 'all' | 'any' | number;
|
|
259
|
-
interface QueryParams {
|
|
260
|
-
term?: string;
|
|
261
|
-
fields?: string[];
|
|
262
|
-
filters?: FilterExpression;
|
|
263
|
-
boost?: Record<string, number>;
|
|
264
|
-
scoring?: ScoringMode;
|
|
265
|
-
minScore?: number;
|
|
266
|
-
termMatch?: TermMatchPolicy;
|
|
267
|
-
tolerance?: number;
|
|
268
|
-
prefixLength?: number;
|
|
269
|
-
exact?: boolean;
|
|
270
|
-
facets?: FacetConfig;
|
|
271
|
-
sort?: Record<string, 'asc' | 'desc'>;
|
|
272
|
-
group?: GroupConfig;
|
|
273
|
-
limit?: number;
|
|
274
|
-
offset?: number;
|
|
275
|
-
searchAfter?: string;
|
|
276
|
-
highlight?: HighlightConfig;
|
|
277
|
-
pinned?: Array<{
|
|
278
|
-
docId: string;
|
|
279
|
-
position: number;
|
|
280
|
-
}>;
|
|
281
|
-
mode?: SearchMode;
|
|
282
|
-
vector?: VectorQueryConfig;
|
|
283
|
-
hybrid?: HybridConfig;
|
|
284
|
-
includeScoreComponents?: boolean;
|
|
285
|
-
}
|
|
286
|
-
interface VectorQueryConfig {
|
|
287
|
-
field: string;
|
|
288
|
-
value?: number[];
|
|
289
|
-
text?: string;
|
|
290
|
-
similarity?: number;
|
|
291
|
-
metric?: 'cosine' | 'dotProduct' | 'euclidean';
|
|
292
|
-
efSearch?: number;
|
|
293
|
-
}
|
|
294
|
-
interface HybridConfig {
|
|
295
|
-
strategy?: 'rrf' | 'linear';
|
|
296
|
-
k?: number;
|
|
297
|
-
alpha?: number;
|
|
298
|
-
}
|
|
299
|
-
interface FacetConfig {
|
|
300
|
-
[field: string]: {
|
|
301
|
-
limit?: number;
|
|
302
|
-
sort?: 'asc' | 'desc';
|
|
303
|
-
ranges?: Array<{
|
|
304
|
-
from: number;
|
|
305
|
-
to: number;
|
|
306
|
-
}>;
|
|
307
|
-
};
|
|
308
|
-
}
|
|
309
|
-
interface GroupConfig {
|
|
310
|
-
fields: string[];
|
|
311
|
-
maxPerGroup?: number;
|
|
312
|
-
reduce?: GroupReducer;
|
|
313
|
-
}
|
|
314
|
-
type GroupReducer = {
|
|
315
|
-
reducer: (accumulator: unknown, doc: AnyDocument, score: number) => unknown;
|
|
316
|
-
initialValue: () => unknown;
|
|
317
|
-
};
|
|
318
|
-
interface HighlightConfig {
|
|
319
|
-
fields: string[];
|
|
320
|
-
preTag?: string;
|
|
321
|
-
postTag?: string;
|
|
322
|
-
maxSnippetLength?: number;
|
|
323
|
-
}
|
|
324
|
-
interface SuggestParams {
|
|
325
|
-
prefix: string;
|
|
326
|
-
limit?: number;
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
interface NarsilPlugin {
|
|
330
|
-
name: string;
|
|
331
|
-
beforeInsert?(ctx: InsertContext): void | Promise<void>;
|
|
332
|
-
afterInsert?(ctx: InsertContext): void | Promise<void>;
|
|
333
|
-
beforeRemove?(ctx: RemoveContext): void | Promise<void>;
|
|
334
|
-
afterRemove?(ctx: RemoveContext): void | Promise<void>;
|
|
335
|
-
beforeUpdate?(ctx: UpdateContext): void | Promise<void>;
|
|
336
|
-
afterUpdate?(ctx: UpdateContext): void | Promise<void>;
|
|
337
|
-
beforeSearch?(ctx: SearchContext): void | Promise<void>;
|
|
338
|
-
afterSearch?(ctx: SearchContext): void | Promise<void>;
|
|
339
|
-
onIndexCreate?(ctx: IndexContext): void | Promise<void>;
|
|
340
|
-
onIndexDrop?(ctx: IndexContext): void | Promise<void>;
|
|
341
|
-
onPartitionSplit?(ctx: PartitionContext): void | Promise<void>;
|
|
342
|
-
onWorkerPromote?(ctx: WorkerContext): void | Promise<void>;
|
|
343
|
-
}
|
|
344
|
-
interface InsertContext {
|
|
345
|
-
indexName: string;
|
|
346
|
-
docId: string;
|
|
347
|
-
document: AnyDocument;
|
|
348
|
-
}
|
|
349
|
-
interface RemoveContext {
|
|
350
|
-
indexName: string;
|
|
351
|
-
docId: string;
|
|
352
|
-
}
|
|
353
|
-
interface UpdateContext {
|
|
354
|
-
indexName: string;
|
|
355
|
-
docId: string;
|
|
356
|
-
oldDocument: AnyDocument;
|
|
357
|
-
newDocument: AnyDocument;
|
|
358
|
-
}
|
|
359
|
-
interface SearchContext {
|
|
360
|
-
indexName: string;
|
|
361
|
-
params: QueryParams;
|
|
362
|
-
results?: QueryResult;
|
|
363
|
-
}
|
|
364
|
-
interface IndexContext {
|
|
365
|
-
indexName: string;
|
|
366
|
-
config: IndexConfig;
|
|
367
|
-
}
|
|
368
|
-
interface PartitionContext {
|
|
369
|
-
indexName: string;
|
|
370
|
-
oldPartitionCount: number;
|
|
371
|
-
newPartitionCount: number;
|
|
372
|
-
}
|
|
373
|
-
interface WorkerContext {
|
|
374
|
-
workerCount: number;
|
|
375
|
-
reason: string;
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
interface NarsilConfig {
|
|
379
|
-
persistence?: PersistenceAdapter;
|
|
380
|
-
invalidation?: InvalidationAdapter;
|
|
381
|
-
plugins?: NarsilPlugin[];
|
|
382
|
-
idGenerator?: () => string;
|
|
383
|
-
workers?: WorkerConfig;
|
|
384
|
-
flush?: FlushConfig;
|
|
385
|
-
eagerLoad?: boolean;
|
|
386
|
-
embedding?: EmbeddingAdapter;
|
|
387
|
-
}
|
|
388
|
-
interface WorkerConfig {
|
|
389
|
-
enabled?: boolean;
|
|
390
|
-
count?: number;
|
|
391
|
-
promotionThreshold?: number;
|
|
392
|
-
totalPromotionThreshold?: number;
|
|
393
|
-
}
|
|
394
|
-
interface FlushConfig {
|
|
395
|
-
interval?: number;
|
|
396
|
-
mutationThreshold?: number;
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
type NarsilEventMap = {
|
|
400
|
-
persistenceError: {
|
|
401
|
-
indexName: string;
|
|
402
|
-
partitionId: number;
|
|
403
|
-
error: Error;
|
|
404
|
-
retriesExhausted: boolean;
|
|
405
|
-
};
|
|
406
|
-
workerCrash: {
|
|
407
|
-
workerId: number;
|
|
408
|
-
indexNames: string[];
|
|
409
|
-
error: Error;
|
|
410
|
-
};
|
|
411
|
-
workerPromote: {
|
|
412
|
-
workerCount: number;
|
|
413
|
-
reason: string;
|
|
414
|
-
};
|
|
415
|
-
partitionRebalance: {
|
|
416
|
-
indexName: string;
|
|
417
|
-
oldCount: number;
|
|
418
|
-
newCount: number;
|
|
419
|
-
};
|
|
420
|
-
};
|
|
421
|
-
|
|
422
|
-
interface Narsil {
|
|
423
|
-
createIndex(name: string, config: IndexConfig): Promise<void>;
|
|
424
|
-
dropIndex(name: string): Promise<void>;
|
|
425
|
-
listIndexes(): IndexInfo[];
|
|
426
|
-
getStats(indexName: string): IndexStats;
|
|
427
|
-
getPartitionStats(indexName: string): PartitionStatsResult[];
|
|
428
|
-
insert(indexName: string, document: AnyDocument, docId?: string, options?: InsertOptions): Promise<string>;
|
|
429
|
-
insertBatch(indexName: string, documents: AnyDocument[], options?: InsertOptions): Promise<BatchResult>;
|
|
430
|
-
remove(indexName: string, docId: string): Promise<void>;
|
|
431
|
-
removeBatch(indexName: string, docIds: string[]): Promise<BatchResult>;
|
|
432
|
-
update(indexName: string, docId: string, document: AnyDocument): Promise<void>;
|
|
433
|
-
updateBatch(indexName: string, updates: Array<{
|
|
434
|
-
docId: string;
|
|
435
|
-
document: AnyDocument;
|
|
436
|
-
}>): Promise<BatchResult>;
|
|
437
|
-
get(indexName: string, docId: string): Promise<AnyDocument | undefined>;
|
|
438
|
-
getMultiple(indexName: string, docIds: string[]): Promise<Map<string, AnyDocument>>;
|
|
439
|
-
has(indexName: string, docId: string): Promise<boolean>;
|
|
440
|
-
countDocuments(indexName: string): Promise<number>;
|
|
441
|
-
query<T = AnyDocument>(indexName: string, params: QueryParams): Promise<QueryResult<T>>;
|
|
442
|
-
preflight(indexName: string, params: QueryParams): Promise<PreflightResult>;
|
|
443
|
-
suggest(indexName: string, params: SuggestParams): Promise<SuggestResult>;
|
|
444
|
-
snapshot(indexName: string): Promise<Uint8Array>;
|
|
445
|
-
restore(indexName: string, data: Uint8Array): Promise<void>;
|
|
446
|
-
clear(indexName: string): Promise<void>;
|
|
447
|
-
rebalance(indexName: string, targetPartitionCount: number): Promise<void>;
|
|
448
|
-
updatePartitionConfig(indexName: string, config: Partial<PartitionConfig>): Promise<void>;
|
|
449
|
-
getMemoryStats(): MemoryStats;
|
|
450
|
-
compactVectors(indexName: string, fieldName?: string): Promise<void>;
|
|
451
|
-
optimizeVectors(indexName: string, fieldName?: string): Promise<void>;
|
|
452
|
-
vectorMaintenanceStatus(indexName: string): VectorMaintenanceResult[];
|
|
453
|
-
on<K extends keyof NarsilEventMap>(event: K, handler: (payload: NarsilEventMap[K]) => void): void;
|
|
454
|
-
off<K extends keyof NarsilEventMap>(event: K, handler: (payload: NarsilEventMap[K]) => void): void;
|
|
455
|
-
shutdown(): Promise<void>;
|
|
456
|
-
}
|
|
457
|
-
declare function createNarsil(config?: NarsilConfig): Promise<Narsil>;
|
|
458
|
-
|
|
459
15
|
declare function isSimdAvailable(): boolean;
|
|
460
16
|
|
|
461
17
|
declare const VERSION = "0.1.0";
|
|
462
18
|
|
|
463
|
-
export {
|
|
19
|
+
export { LanguageModule, VERSION, clearNormalizationCache, configureNormalizationCache, getLanguage, getNormalizationCacheSize, isSimdAvailable, registerLanguage, resetNormalizationCache };
|