elasticlink 0.5.0-beta → 0.7.0-beta
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 +9 -2
- package/dist/aggregation.builder.d.ts +3 -3
- package/dist/aggregation.builder.d.ts.map +1 -1
- package/dist/aggregation.builder.js +61 -151
- package/dist/aggregation.types.d.ts +92 -32
- package/dist/aggregation.types.d.ts.map +1 -1
- package/dist/field.helpers.d.ts +25 -1
- package/dist/field.helpers.d.ts.map +1 -1
- package/dist/field.helpers.js +31 -0
- package/dist/field.types.d.ts +19 -0
- package/dist/field.types.d.ts.map +1 -1
- package/dist/index-management.builder.d.ts.map +1 -1
- package/dist/index-management.builder.js +1 -0
- package/dist/index-management.types.d.ts +33 -1
- package/dist/index-management.types.d.ts.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/mapping.types.d.ts +21 -1
- package/dist/mapping.types.d.ts.map +1 -1
- package/dist/query.builder.d.ts.map +1 -1
- package/dist/query.builder.js +24 -12
- package/dist/query.types.d.ts +67 -10
- package/dist/query.types.d.ts.map +1 -1
- package/package.json +21 -15
package/README.md
CHANGED
|
@@ -24,6 +24,9 @@ elasticlink simplifies building Elasticsearch queries and index management in Ty
|
|
|
24
24
|
|
|
25
25
|
| elasticlink | Node.js | Elasticsearch |
|
|
26
26
|
|-------------|-------------|---------------|
|
|
27
|
+
| 0.7.0-beta | 20, 22, 24 | 9.x (≥9.0.0) |
|
|
28
|
+
| 0.6.0-beta | 20, 22, 24 | 9.x (≥9.0.0) |
|
|
29
|
+
| 0.5.0-beta | 20, 22, 24 | 9.x (≥9.0.0) |
|
|
27
30
|
| 0.4.0-beta | 20, 22, 24 | 9.x (≥9.0.0) |
|
|
28
31
|
| 0.3.0-beta | 20, 22, 24 | 9.x (≥9.0.0) |
|
|
29
32
|
| 0.2.0-beta | 20, 22 | 9.x (≥9.0.0) |
|
|
@@ -183,7 +186,7 @@ Aggregations can be combined with queries or used standalone:
|
|
|
183
186
|
|
|
184
187
|
- **Bucket**: `terms()`, `dateHistogram()`, `histogram()`, `range()`
|
|
185
188
|
- **Metric**: `avg()`, `sum()`, `min()`, `max()`, `cardinality()`, `percentiles()`, `stats()`, `valueCount()`
|
|
186
|
-
- **Composition**: `subAgg()` for nested aggregations
|
|
189
|
+
- **Composition**: `subAgg()` for nested aggregations — attaches sub-aggregations to the **last** aggregation defined before the call; chain order matters
|
|
187
190
|
|
|
188
191
|
```typescript
|
|
189
192
|
import { query, aggregations } from 'elasticlink';
|
|
@@ -284,12 +287,14 @@ const hybridSearch = query(productWithEmbeddingMappings)
|
|
|
284
287
|
```
|
|
285
288
|
|
|
286
289
|
**Common Vector Dimensions:**
|
|
290
|
+
|
|
287
291
|
- **384-768**: Sentence transformers (all-MiniLM, all-mpnet)
|
|
288
292
|
- **512**: Image embeddings (ResNet, ViT)
|
|
289
293
|
- **1536**: OpenAI text-embedding-ada-002
|
|
290
294
|
- **3072**: OpenAI text-embedding-3-large
|
|
291
295
|
|
|
292
296
|
**Dense Vector Field Mapping Example:**
|
|
297
|
+
|
|
293
298
|
```typescript
|
|
294
299
|
import type { DenseVectorOptions } from 'elasticlink';
|
|
295
300
|
|
|
@@ -345,6 +350,7 @@ const customScored = query(scoredProductMappings)
|
|
|
345
350
|
```
|
|
346
351
|
|
|
347
352
|
**Script Languages:**
|
|
353
|
+
|
|
348
354
|
- **painless** (default): Elasticsearch's primary scripting language
|
|
349
355
|
- **expression**: Fast, limited expression language
|
|
350
356
|
- **mustache**: Template-based scripting
|
|
@@ -1089,9 +1095,10 @@ const result = query(restaurantMappings)
|
|
|
1089
1095
|
|
|
1090
1096
|
elasticlink provides mapping-aware TypeScript safety:
|
|
1091
1097
|
|
|
1092
|
-
- **Field-Type Constraints**: `match()` only accepts text fields, `term()` only keyword fields
|
|
1098
|
+
- **Field-Type Constraints**: enforced at compile time across all methods — `match()` only accepts text fields, `term()` only keyword/numeric fields, `sort()` only sortable fields (keyword, numeric, date, boolean, ip), `collapse()` only keyword/numeric fields, `highlight()` only text/keyword fields
|
|
1093
1099
|
- **Field Autocomplete**: IntelliSense knows your field names and their types
|
|
1094
1100
|
- **`Infer<S>`**: Derive TS document types from your mappings schema
|
|
1101
|
+
- **Exported Field Group Types**: `SortableFields<M>`, `CollapsibleFields<M>`, `HighlightableFields<M>`, `TextFields<M>`, `KeywordFields<M>`, and others are exported for use in your own typed utilities
|
|
1095
1102
|
|
|
1096
1103
|
```typescript
|
|
1097
1104
|
import { query, mappings, text, keyword, integer, type Infer } from 'elasticlink';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { FieldTypeString } from './index-management.types.js';
|
|
2
2
|
import type { MappingsSchema } from './mapping.types.js';
|
|
3
|
-
import {
|
|
4
|
-
export declare
|
|
5
|
-
export declare const aggregations: <M extends Record<string, FieldTypeString>>(_schema: MappingsSchema<M>) =>
|
|
3
|
+
import type { RootAggregationBuilder, AggregationState } from './aggregation.types.js';
|
|
4
|
+
export declare function createAggregationBuilder<M extends Record<string, FieldTypeString>>(state?: AggregationState): RootAggregationBuilder<M>;
|
|
5
|
+
export declare const aggregations: <M extends Record<string, FieldTypeString>>(_schema: MappingsSchema<M>) => RootAggregationBuilder<M>;
|
|
6
6
|
//# sourceMappingURL=aggregation.builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregation.builder.d.ts","sourceRoot":"","sources":["../src/aggregation.builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"aggregation.builder.d.ts","sourceRoot":"","sources":["../src/aggregation.builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAiC,MAAM,oBAAoB,CAAC;AACxF,OAAO,KAAK,EACV,sBAAsB,EAGtB,gBAAgB,EAkBjB,MAAM,wBAAwB,CAAC;AAuHhC,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAChF,KAAK,GAAE,gBAAqB,GAC3B,sBAAsB,CAAC,CAAC,CAAC,CAgB3B;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,SAAS,cAAc,CAAC,CAAC,CAAC,8BACnE,CAAC"}
|
|
@@ -1,155 +1,65 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
},
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
},
|
|
25
|
-
range: (name, field, options) => {
|
|
26
|
-
return createAggregationBuilder({
|
|
27
|
-
...state,
|
|
28
|
-
[name]: {
|
|
29
|
-
range: {
|
|
30
|
-
field,
|
|
31
|
-
...(options && options)
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
},
|
|
36
|
-
histogram: (name, field, options) => {
|
|
37
|
-
return createAggregationBuilder({
|
|
38
|
-
...state,
|
|
39
|
-
[name]: {
|
|
40
|
-
histogram: {
|
|
41
|
-
field,
|
|
42
|
-
...(options && options)
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
},
|
|
47
|
-
// Metric aggregations
|
|
48
|
-
avg: (name, field, options) => {
|
|
49
|
-
return createAggregationBuilder({
|
|
50
|
-
...state,
|
|
51
|
-
[name]: {
|
|
52
|
-
avg: {
|
|
53
|
-
field,
|
|
54
|
-
...(options && options)
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
},
|
|
59
|
-
sum: (name, field, options) => {
|
|
60
|
-
return createAggregationBuilder({
|
|
61
|
-
...state,
|
|
62
|
-
[name]: {
|
|
63
|
-
sum: {
|
|
64
|
-
field,
|
|
65
|
-
...(options && options)
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
},
|
|
70
|
-
min: (name, field, options) => {
|
|
71
|
-
return createAggregationBuilder({
|
|
72
|
-
...state,
|
|
73
|
-
[name]: {
|
|
74
|
-
min: {
|
|
75
|
-
field,
|
|
76
|
-
...(options && options)
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
},
|
|
81
|
-
max: (name, field, options) => {
|
|
82
|
-
return createAggregationBuilder({
|
|
83
|
-
...state,
|
|
84
|
-
[name]: {
|
|
85
|
-
max: {
|
|
86
|
-
field,
|
|
87
|
-
...(options && options)
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
},
|
|
92
|
-
cardinality: (name, field, options) => {
|
|
93
|
-
return createAggregationBuilder({
|
|
94
|
-
...state,
|
|
95
|
-
[name]: {
|
|
96
|
-
cardinality: {
|
|
97
|
-
field,
|
|
98
|
-
...(options && options)
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
},
|
|
103
|
-
percentiles: (name, field, options) => {
|
|
104
|
-
return createAggregationBuilder({
|
|
105
|
-
...state,
|
|
106
|
-
[name]: {
|
|
107
|
-
percentiles: {
|
|
108
|
-
field,
|
|
109
|
-
...(options && options)
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
},
|
|
114
|
-
stats: (name, field, options) => {
|
|
115
|
-
return createAggregationBuilder({
|
|
116
|
-
...state,
|
|
117
|
-
[name]: {
|
|
118
|
-
stats: {
|
|
119
|
-
field,
|
|
120
|
-
...(options && options)
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
},
|
|
125
|
-
valueCount: (name, field, options) => {
|
|
126
|
-
return createAggregationBuilder({
|
|
127
|
-
...state,
|
|
128
|
-
[name]: {
|
|
129
|
-
value_count: {
|
|
130
|
-
field,
|
|
131
|
-
...(options && options)
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
},
|
|
136
|
-
// Sub-aggregations
|
|
137
|
-
subAgg: (fn) => {
|
|
138
|
-
const keys = Object.keys(state);
|
|
139
|
-
const lastKey = keys.at(-1);
|
|
140
|
-
const { [lastKey]: lastAgg } = state;
|
|
141
|
-
const subAggs = fn(createAggregationBuilder({})).build();
|
|
142
|
-
return createAggregationBuilder({
|
|
143
|
-
...state,
|
|
144
|
-
[lastKey]: {
|
|
145
|
-
...lastAgg,
|
|
146
|
-
aggs: subAggs
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
},
|
|
150
|
-
// Build
|
|
1
|
+
// Shared metric/bucket method implementations — return type is `any` so the same code
|
|
2
|
+
// can be spread into RootAggregationBuilder, NestedEntryBuilder, and NestedAggregationBuilder.
|
|
3
|
+
// The actual return-type contracts are enforced by the public factory return-type annotations.
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5
|
+
const sharedAggMethods = (state, rebuild) => ({
|
|
6
|
+
terms: (name, field, options) => rebuild({ ...state, [name]: { terms: { field, ...(options ?? {}) } } }),
|
|
7
|
+
dateHistogram: (name, field, options) => rebuild({ ...state, [name]: { date_histogram: { field, ...(options ?? {}) } } }),
|
|
8
|
+
range: (name, field, options) => rebuild({ ...state, [name]: { range: { field, ...(options ?? {}) } } }),
|
|
9
|
+
histogram: (name, field, options) => rebuild({ ...state, [name]: { histogram: { field, ...(options ?? {}) } } }),
|
|
10
|
+
avg: (name, field, options) => rebuild({ ...state, [name]: { avg: { field, ...(options ?? {}) } } }),
|
|
11
|
+
sum: (name, field, options) => rebuild({ ...state, [name]: { sum: { field, ...(options ?? {}) } } }),
|
|
12
|
+
min: (name, field, options) => rebuild({ ...state, [name]: { min: { field, ...(options ?? {}) } } }),
|
|
13
|
+
max: (name, field, options) => rebuild({ ...state, [name]: { max: { field, ...(options ?? {}) } } }),
|
|
14
|
+
cardinality: (name, field, options) => rebuild({ ...state, [name]: { cardinality: { field, ...(options ?? {}) } } }),
|
|
15
|
+
percentiles: (name, field, options) => rebuild({ ...state, [name]: { percentiles: { field, ...(options ?? {}) } } }),
|
|
16
|
+
stats: (name, field, options) => rebuild({ ...state, [name]: { stats: { field, ...(options ?? {}) } } }),
|
|
17
|
+
valueCount: (name, field, options) => rebuild({ ...state, [name]: { value_count: { field, ...(options ?? {}) } } }),
|
|
18
|
+
extendedStats: (name, field, options) => rebuild({ ...state, [name]: { extended_stats: { field, ...(options ?? {}) } } }),
|
|
19
|
+
topHits: (name, options) => rebuild({ ...state, [name]: { top_hits: { ...(options ?? {}) } } }),
|
|
20
|
+
autoDateHistogram: (name, field, options) => rebuild({ ...state, [name]: { auto_date_histogram: { field, ...(options ?? {}) } } }),
|
|
21
|
+
composite: (name, sources, options) => rebuild({ ...state, [name]: { composite: { sources, ...(options ?? {}) } } }),
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
|
+
filter: (name, query) => rebuild({ ...state, [name]: { filter: query } }),
|
|
151
24
|
// eslint-disable-next-line functional/functional-parameters
|
|
152
25
|
build: () => state
|
|
153
26
|
});
|
|
154
|
-
|
|
27
|
+
const attachSubAgg = (state, subAggState) => {
|
|
28
|
+
const lastKey = Object.keys(state).at(-1);
|
|
29
|
+
const existing = state[lastKey].aggs ?? {};
|
|
30
|
+
return { ...state, [lastKey]: { ...state[lastKey], aggs: { ...existing, ...subAggState } } };
|
|
31
|
+
};
|
|
32
|
+
// Function declarations are used for the internal factories (vs const arrows) so that mutual
|
|
33
|
+
// recursion between createNestedEntryBuilder and createNestedAggregationBuilder is hoisted.
|
|
34
|
+
function createNestedEntryBuilder(state,
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
|
+
rebuild
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
38
|
+
) {
|
|
39
|
+
return {
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
|
+
...sharedAggMethods(state, rebuild),
|
|
42
|
+
global: (name) => createAggregationBuilder({ ...state, [name]: { global: {} } }),
|
|
43
|
+
nested: (name, path) => createNestedEntryBuilder({ ...state, [name]: { nested: { path } } }, rebuild),
|
|
44
|
+
subAgg: (fn) => rebuild(attachSubAgg(state, fn(createNestedAggregationBuilder()).build()))
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function createNestedAggregationBuilder(state = {}) {
|
|
48
|
+
return {
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
50
|
+
...sharedAggMethods(state, (createNestedAggregationBuilder)),
|
|
51
|
+
nested: (name, path) => createNestedEntryBuilder({ ...state, [name]: { nested: { path } } }, (createNestedAggregationBuilder)),
|
|
52
|
+
reverseNested: (name, path) => createNestedAggregationBuilder({ ...state, [name]: { reverse_nested: path ? { path } : {} } }),
|
|
53
|
+
subAgg: (fn) => createNestedAggregationBuilder(attachSubAgg(state, fn(createNestedAggregationBuilder()).build()))
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export function createAggregationBuilder(state = {}) {
|
|
57
|
+
return {
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
59
|
+
...sharedAggMethods(state, (createAggregationBuilder)),
|
|
60
|
+
global: (name) => createAggregationBuilder({ ...state, [name]: { global: {} } }),
|
|
61
|
+
nested: (name, path) => createNestedEntryBuilder({ ...state, [name]: { nested: { path } } }, (createAggregationBuilder)),
|
|
62
|
+
subAgg: (fn) => createAggregationBuilder(attachSubAgg(state, fn(createAggregationBuilder()).build()))
|
|
63
|
+
};
|
|
64
|
+
}
|
|
155
65
|
export const aggregations = (_schema) => createAggregationBuilder();
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
* Derived from official @elastic/elasticsearch types for accuracy and completeness.
|
|
4
4
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html
|
|
5
5
|
*/
|
|
6
|
-
import type { AggregationsTermsAggregation, AggregationsDateHistogramAggregation, AggregationsRangeAggregation, AggregationsHistogramAggregation, AggregationsAverageAggregation, AggregationsSumAggregation, AggregationsMinAggregation, AggregationsMaxAggregation, AggregationsCardinalityAggregation, AggregationsPercentilesAggregation, AggregationsStatsAggregation, AggregationsValueCountAggregation, AggregationsCalendarInterval } from '@elastic/elasticsearch/lib/api/types';
|
|
6
|
+
import type { AggregationsTermsAggregation, AggregationsDateHistogramAggregation, AggregationsRangeAggregation, AggregationsHistogramAggregation, AggregationsAverageAggregation, AggregationsSumAggregation, AggregationsMinAggregation, AggregationsMaxAggregation, AggregationsCardinalityAggregation, AggregationsPercentilesAggregation, AggregationsStatsAggregation, AggregationsValueCountAggregation, AggregationsCalendarInterval, AggregationsExtendedStatsAggregation, AggregationsTopHitsAggregation, AggregationsAutoDateHistogramAggregation, AggregationsCompositeAggregation, AggregationsCompositeAggregationSource } from '@elastic/elasticsearch/lib/api/types';
|
|
7
7
|
import type { FieldTypeString } from './index-management.types.js';
|
|
8
|
-
import type { DateFields, NumericFields } from './mapping.types.js';
|
|
8
|
+
import type { DateFields, NumericFields, KeywordFields, BooleanFields, IpFields, NestedPathFields, SubFieldsOf } from './mapping.types.js';
|
|
9
9
|
/**
|
|
10
10
|
* Options for terms aggregation (excludes 'field' which is handled by the builder)
|
|
11
11
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html
|
|
@@ -71,6 +71,30 @@ export type StatsAggOptions = Omit<AggregationsStatsAggregation, 'field'>;
|
|
|
71
71
|
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-valuecount-aggregation.html
|
|
72
72
|
*/
|
|
73
73
|
export type ValueCountAggOptions = Omit<AggregationsValueCountAggregation, 'field'>;
|
|
74
|
+
/**
|
|
75
|
+
* Options for extended_stats aggregation (excludes 'field' which is handled by the builder)
|
|
76
|
+
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-extendedstats-aggregation.html
|
|
77
|
+
*/
|
|
78
|
+
export type ExtendedStatsAggOptions = Omit<AggregationsExtendedStatsAggregation, 'field'>;
|
|
79
|
+
/**
|
|
80
|
+
* Options for top_hits aggregation
|
|
81
|
+
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-top-hits-aggregation.html
|
|
82
|
+
*/
|
|
83
|
+
export type TopHitsAggOptions = AggregationsTopHitsAggregation;
|
|
84
|
+
/**
|
|
85
|
+
* Options for auto_date_histogram aggregation (excludes 'field' which is handled by the builder)
|
|
86
|
+
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-autodatehistogram-aggregation.html
|
|
87
|
+
*/
|
|
88
|
+
export type AutoDateHistogramAggOptions = Omit<AggregationsAutoDateHistogramAggregation, 'field'>;
|
|
89
|
+
/**
|
|
90
|
+
* Source entry for composite aggregation — a named single-value source definition
|
|
91
|
+
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-composite-aggregation.html
|
|
92
|
+
*/
|
|
93
|
+
export type CompositeAggSource = Record<string, AggregationsCompositeAggregationSource>;
|
|
94
|
+
/**
|
|
95
|
+
* Options for composite aggregation (excludes 'sources' which is handled by the builder)
|
|
96
|
+
*/
|
|
97
|
+
export type CompositeAggOptions = Omit<AggregationsCompositeAggregation, 'sources'>;
|
|
74
98
|
/**
|
|
75
99
|
* Aggregation state for build output
|
|
76
100
|
*/
|
|
@@ -78,36 +102,72 @@ export type AggregationState = {
|
|
|
78
102
|
[key: string]: any;
|
|
79
103
|
};
|
|
80
104
|
/**
|
|
81
|
-
*
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
terms: <K extends
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
/** Percentiles aggregation */
|
|
103
|
-
percentiles: <K extends NumericFields<M> & string>(name: string, field: K, options?: PercentilesAggOptions) => AggregationBuilder<M>;
|
|
104
|
-
/** Statistics aggregation (count, min, max, avg, sum) */
|
|
105
|
-
stats: <K extends NumericFields<M> & string>(name: string, field: K, options?: StatsAggOptions) => AggregationBuilder<M>;
|
|
106
|
-
/** Value count aggregation */
|
|
107
|
-
valueCount: <K extends string & keyof M>(name: string, field: K, options?: ValueCountAggOptions) => AggregationBuilder<M>;
|
|
108
|
-
/** Add sub-aggregation to parent bucket aggregation */
|
|
109
|
-
subAgg: (fn: (agg: AggregationBuilder<M>) => AggregationBuilder<M>) => AggregationBuilder<M>;
|
|
110
|
-
/** Build aggregation DSL */
|
|
105
|
+
* Shared metric and bucket aggregation methods.
|
|
106
|
+
* `Self` is the return type for each method — varies by context (root vs nested).
|
|
107
|
+
*/
|
|
108
|
+
export type BaseAggMethods<M extends Record<string, FieldTypeString>, Self> = {
|
|
109
|
+
terms: <K extends (KeywordFields<M> | NumericFields<M> | BooleanFields<M> | IpFields<M>) & string>(name: string, field: K, options?: TermsAggOptions) => Self;
|
|
110
|
+
dateHistogram: <K extends DateFields<M> & string>(name: string, field: K, options?: DateHistogramAggOptions) => Self;
|
|
111
|
+
range: <K extends (NumericFields<M> | DateFields<M>) & string>(name: string, field: K, options?: RangeAggOptions) => Self;
|
|
112
|
+
histogram: <K extends NumericFields<M> & string>(name: string, field: K, options?: HistogramAggOptions) => Self;
|
|
113
|
+
avg: <K extends NumericFields<M> & string>(name: string, field: K, options?: AvgAggOptions) => Self;
|
|
114
|
+
sum: <K extends NumericFields<M> & string>(name: string, field: K, options?: SumAggOptions) => Self;
|
|
115
|
+
min: <K extends NumericFields<M> & string>(name: string, field: K, options?: MinAggOptions) => Self;
|
|
116
|
+
max: <K extends NumericFields<M> & string>(name: string, field: K, options?: MaxAggOptions) => Self;
|
|
117
|
+
cardinality: <K extends string & keyof M>(name: string, field: K, options?: CardinalityAggOptions) => Self;
|
|
118
|
+
percentiles: <K extends NumericFields<M> & string>(name: string, field: K, options?: PercentilesAggOptions) => Self;
|
|
119
|
+
stats: <K extends NumericFields<M> & string>(name: string, field: K, options?: StatsAggOptions) => Self;
|
|
120
|
+
valueCount: <K extends string & keyof M>(name: string, field: K, options?: ValueCountAggOptions) => Self;
|
|
121
|
+
extendedStats: <K extends NumericFields<M> & string>(name: string, field: K, options?: ExtendedStatsAggOptions) => Self;
|
|
122
|
+
topHits: (name: string, options?: TopHitsAggOptions) => Self;
|
|
123
|
+
autoDateHistogram: <K extends DateFields<M> & string>(name: string, field: K, options?: AutoDateHistogramAggOptions) => Self;
|
|
124
|
+
composite: (name: string, sources: CompositeAggSource[], options?: CompositeAggOptions) => Self;
|
|
125
|
+
filter: (name: string, query: Record<string, any>) => Self;
|
|
111
126
|
build: () => AggregationState;
|
|
112
127
|
};
|
|
128
|
+
/**
|
|
129
|
+
* Root-level aggregation builder. Supports `global` and `nested`; does not expose `reverseNested`.
|
|
130
|
+
*
|
|
131
|
+
* Declared as an `interface` (not a `type` alias) so that TypeScript's lazy interface resolution
|
|
132
|
+
* handles the 3-way mutual recursion between `RootAggregationBuilder`, `NestedEntryBuilder`,
|
|
133
|
+
* and `NestedAggregationBuilder` without triggering TS2456 (circular type alias).
|
|
134
|
+
*/
|
|
135
|
+
export interface RootAggregationBuilder<M extends Record<string, FieldTypeString>> extends BaseAggMethods<M, RootAggregationBuilder<M>> {
|
|
136
|
+
/** Global aggregation — escapes the current filter context to aggregate across all documents.
|
|
137
|
+
* @remarks Only valid at the root aggregation level, not inside a nested context. */
|
|
138
|
+
global: (name: string) => RootAggregationBuilder<M>;
|
|
139
|
+
/** Nested aggregation — enters a nested document context for aggregating nested fields.
|
|
140
|
+
* Returns a `NestedEntryBuilder` whose `subAgg` callback receives the nested sub-field types. */
|
|
141
|
+
nested: <K extends NestedPathFields<M> & string>(name: string, path: K) => NestedEntryBuilder<M, SubFieldsOf<M, K>, RootAggregationBuilder<M>, M>;
|
|
142
|
+
/** Add sub-aggregation to the last bucket aggregation */
|
|
143
|
+
subAgg: (fn: (agg: RootAggregationBuilder<M>) => RootAggregationBuilder<M>) => RootAggregationBuilder<M>;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Returned by `.nested()` on a root or nested builder.
|
|
147
|
+
*
|
|
148
|
+
* Dual-context design: metric/bucket helpers inherited from `BaseAggMethods<M, R>` operate
|
|
149
|
+
* on the parent field map `M` (sibling aggregations), while the `subAgg` callback is typed
|
|
150
|
+
* to `NestedAggregationBuilder<N>`, giving it access only to the nested sub-fields `N`.
|
|
151
|
+
*
|
|
152
|
+
* `R` is the parent context — `RootAggregationBuilder<M>` when called from root,
|
|
153
|
+
* `NestedAggregationBuilder<M>` when called from inside a nested context.
|
|
154
|
+
*/
|
|
155
|
+
export interface NestedEntryBuilder<M extends Record<string, FieldTypeString>, N extends Record<string, FieldTypeString>, R = RootAggregationBuilder<M>, Root extends Record<string, FieldTypeString> = M> extends BaseAggMethods<M, R> {
|
|
156
|
+
global: (name: string) => RootAggregationBuilder<M>;
|
|
157
|
+
nested: <K extends NestedPathFields<M> & string>(name: string, path: K) => NestedEntryBuilder<M, SubFieldsOf<M, K>, R, Root>;
|
|
158
|
+
subAgg: (fn: (agg: NestedAggregationBuilder<N, Root>) => NestedAggregationBuilder<N, Root>) => R;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Nested-context aggregation builder. Supports `reverseNested` and nested-level `nested`;
|
|
162
|
+
* does not expose `global`.
|
|
163
|
+
*/
|
|
164
|
+
export interface NestedAggregationBuilder<N extends Record<string, FieldTypeString>, Root extends Record<string, FieldTypeString> = N> extends BaseAggMethods<N, NestedAggregationBuilder<N, Root>> {
|
|
165
|
+
/** Nested aggregation within a nested context — supports multi-level nesting */
|
|
166
|
+
nested: <K extends NestedPathFields<N> & string>(name: string, path: K) => NestedEntryBuilder<N, SubFieldsOf<N, K>, NestedAggregationBuilder<N, Root>, Root>;
|
|
167
|
+
/** Reverse nested aggregation — returns from a nested context back to the root document.
|
|
168
|
+
* @remarks Only valid inside a nested aggregation context. */
|
|
169
|
+
reverseNested: (name: string, path?: string) => NestedAggregationBuilder<Root, Root>;
|
|
170
|
+
/** Add sub-aggregation to the last bucket aggregation */
|
|
171
|
+
subAgg: (fn: (agg: NestedAggregationBuilder<N, Root>) => NestedAggregationBuilder<N, Root>) => NestedAggregationBuilder<N, Root>;
|
|
172
|
+
}
|
|
113
173
|
//# sourceMappingURL=aggregation.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregation.types.d.ts","sourceRoot":"","sources":["../src/aggregation.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,4BAA4B,EAC5B,oCAAoC,EACpC,4BAA4B,EAC5B,gCAAgC,EAChC,8BAA8B,EAC9B,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,kCAAkC,EAClC,kCAAkC,EAClC,4BAA4B,EAC5B,iCAAiC,EACjC,4BAA4B,
|
|
1
|
+
{"version":3,"file":"aggregation.types.d.ts","sourceRoot":"","sources":["../src/aggregation.types.ts"],"names":[],"mappings":"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"}
|
package/dist/field.helpers.d.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* embedding: denseVector({ dims: 384 }),
|
|
14
14
|
* });
|
|
15
15
|
*/
|
|
16
|
-
import type { TextFieldOptions, KeywordFieldOptions, NumericFieldOptions, ScaledFloatFieldOptions, DateFieldOptions, BooleanFieldOptions, DenseVectorFieldOptions, ObjectFieldOptions, CompletionFieldOptions, GeoPointFieldOptions, GeoShapeFieldOptions, AliasFieldOptions, IpFieldOptions, RangeFieldOptions, MatchOnlyTextFieldOptions, SearchAsYouTypeFieldOptions, ConstantKeywordFieldOptions, WildcardFieldOptions, FlattenedFieldOptions, FieldMappingWithLiteralType, TextFieldMapping, KeywordFieldMapping, LongFieldMapping, IntegerFieldMapping, ShortFieldMapping, ByteFieldMapping, DoubleFieldMapping, FloatFieldMapping, HalfFloatFieldMapping, ScaledFloatFieldMapping, DateFieldMapping, BooleanFieldMapping, BinaryFieldMapping, IpFieldMapping, DenseVectorFieldMapping, GeoPointFieldMapping, GeoShapeFieldMapping, CompletionFieldMapping, TypedNestedFieldMapping, TypedObjectFieldMapping, AliasFieldMapping, PercolatorFieldMapping, IntegerRangeFieldMapping, FloatRangeFieldMapping, LongRangeFieldMapping, DoubleRangeFieldMapping, DateRangeFieldMapping, MatchOnlyTextFieldMapping, SearchAsYouTypeFieldMapping, ConstantKeywordFieldMapping, WildcardFieldMapping, FlattenedFieldMapping } from './field.types.js';
|
|
16
|
+
import type { TextFieldOptions, KeywordFieldOptions, NumericFieldOptions, UnsignedLongFieldOptions, ScaledFloatFieldOptions, DateFieldOptions, BooleanFieldOptions, DenseVectorFieldOptions, SemanticTextFieldOptions, ObjectFieldOptions, CompletionFieldOptions, GeoPointFieldOptions, GeoShapeFieldOptions, AliasFieldOptions, IpFieldOptions, RangeFieldOptions, MatchOnlyTextFieldOptions, SearchAsYouTypeFieldOptions, ConstantKeywordFieldOptions, WildcardFieldOptions, FlattenedFieldOptions, FieldMappingWithLiteralType, TextFieldMapping, KeywordFieldMapping, LongFieldMapping, IntegerFieldMapping, ShortFieldMapping, ByteFieldMapping, DoubleFieldMapping, FloatFieldMapping, HalfFloatFieldMapping, ScaledFloatFieldMapping, DateFieldMapping, BooleanFieldMapping, BinaryFieldMapping, IpFieldMapping, DenseVectorFieldMapping, SparseVectorFieldMapping, SemanticTextFieldMapping, UnsignedLongFieldMapping, GeoPointFieldMapping, GeoShapeFieldMapping, CompletionFieldMapping, TypedNestedFieldMapping, TypedObjectFieldMapping, AliasFieldMapping, PercolatorFieldMapping, IntegerRangeFieldMapping, FloatRangeFieldMapping, LongRangeFieldMapping, DoubleRangeFieldMapping, DateRangeFieldMapping, MatchOnlyTextFieldMapping, SearchAsYouTypeFieldMapping, ConstantKeywordFieldMapping, WildcardFieldMapping, FlattenedFieldMapping } from './field.types.js';
|
|
17
17
|
export declare const text: (options?: TextFieldOptions) => TextFieldMapping;
|
|
18
18
|
export declare const keyword: (options?: KeywordFieldOptions) => KeywordFieldMapping;
|
|
19
19
|
export declare const long: (options?: NumericFieldOptions) => LongFieldMapping;
|
|
@@ -61,6 +61,30 @@ export declare const denseVector: (options?: DenseVectorFieldOptions) => DenseVe
|
|
|
61
61
|
* .build();
|
|
62
62
|
*/
|
|
63
63
|
export declare const quantizedDenseVector: (options?: DenseVectorFieldOptions) => DenseVectorFieldMapping;
|
|
64
|
+
/**
|
|
65
|
+
* Sparse vector field — stores token-weight pairs for sparse retrieval (e.g. ELSER/BM25-style models).
|
|
66
|
+
* Complement to `denseVector()`. Query with the `sparse_vector` query.
|
|
67
|
+
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/sparse-vector.html
|
|
68
|
+
*/
|
|
69
|
+
export declare const sparseVector: () => SparseVectorFieldMapping;
|
|
70
|
+
/**
|
|
71
|
+
* Semantic text field (ES 9.x) — ML-powered text field for semantic and hybrid search.
|
|
72
|
+
* Automatically generates and stores embeddings at index time using the configured inference endpoint.
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* const schema = mappings({
|
|
76
|
+
* title: text(),
|
|
77
|
+
* body: semanticText({ inference_id: 'my-elser-endpoint' }),
|
|
78
|
+
* });
|
|
79
|
+
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/semantic-text.html
|
|
80
|
+
*/
|
|
81
|
+
export declare const semanticText: (options?: SemanticTextFieldOptions) => SemanticTextFieldMapping;
|
|
82
|
+
/**
|
|
83
|
+
* Unsigned long field (ES 9.0+) — stores unsigned 64-bit integer values (0 to 2^64-1).
|
|
84
|
+
* Use when values exceed the `long` range.
|
|
85
|
+
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/number.html
|
|
86
|
+
*/
|
|
87
|
+
export declare const unsignedLong: (options?: UnsignedLongFieldOptions) => UnsignedLongFieldMapping;
|
|
64
88
|
export declare const geoPoint: (options?: GeoPointFieldOptions) => GeoPointFieldMapping;
|
|
65
89
|
export declare const geoShape: (options?: GeoShapeFieldOptions) => GeoShapeFieldMapping;
|
|
66
90
|
export declare const completion: (options?: CompletionFieldOptions) => CompletionFieldMapping;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.helpers.d.ts","sourceRoot":"","sources":["../src/field.helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"field.helpers.d.ts","sourceRoot":"","sources":["../src/field.helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/field.helpers.js
CHANGED
|
@@ -113,6 +113,37 @@ export const quantizedDenseVector = (options) => ({
|
|
|
113
113
|
...options,
|
|
114
114
|
index_options: { type: 'int8_hnsw', ...options?.index_options }
|
|
115
115
|
});
|
|
116
|
+
/**
|
|
117
|
+
* Sparse vector field — stores token-weight pairs for sparse retrieval (e.g. ELSER/BM25-style models).
|
|
118
|
+
* Complement to `denseVector()`. Query with the `sparse_vector` query.
|
|
119
|
+
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/sparse-vector.html
|
|
120
|
+
*/
|
|
121
|
+
// eslint-disable-next-line functional/functional-parameters
|
|
122
|
+
export const sparseVector = () => ({ type: 'sparse_vector' });
|
|
123
|
+
/**
|
|
124
|
+
* Semantic text field (ES 9.x) — ML-powered text field for semantic and hybrid search.
|
|
125
|
+
* Automatically generates and stores embeddings at index time using the configured inference endpoint.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* const schema = mappings({
|
|
129
|
+
* title: text(),
|
|
130
|
+
* body: semanticText({ inference_id: 'my-elser-endpoint' }),
|
|
131
|
+
* });
|
|
132
|
+
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/semantic-text.html
|
|
133
|
+
*/
|
|
134
|
+
export const semanticText = (options) => ({
|
|
135
|
+
type: 'semantic_text',
|
|
136
|
+
...options
|
|
137
|
+
});
|
|
138
|
+
/**
|
|
139
|
+
* Unsigned long field (ES 9.0+) — stores unsigned 64-bit integer values (0 to 2^64-1).
|
|
140
|
+
* Use when values exceed the `long` range.
|
|
141
|
+
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/number.html
|
|
142
|
+
*/
|
|
143
|
+
export const unsignedLong = (options) => ({
|
|
144
|
+
type: 'unsigned_long',
|
|
145
|
+
...options
|
|
146
|
+
});
|
|
116
147
|
// Geo
|
|
117
148
|
export const geoPoint = (options) => ({
|
|
118
149
|
type: 'geo_point',
|
package/dist/field.types.d.ts
CHANGED
|
@@ -53,6 +53,10 @@ export type NumericFieldOptions = {
|
|
|
53
53
|
export type ScaledFloatFieldOptions = NumericFieldOptions & {
|
|
54
54
|
scaling_factor?: number;
|
|
55
55
|
};
|
|
56
|
+
/** Options for unsigned_long fields — null_value accepts string or number for >MAX_SAFE_INTEGER precision */
|
|
57
|
+
export type UnsignedLongFieldOptions = Omit<NumericFieldOptions, 'null_value'> & {
|
|
58
|
+
null_value?: string | number;
|
|
59
|
+
};
|
|
56
60
|
/** Options for date fields */
|
|
57
61
|
export type DateFieldOptions = {
|
|
58
62
|
boost?: number;
|
|
@@ -81,6 +85,18 @@ export type DenseVectorFieldOptions = {
|
|
|
81
85
|
index_options?: any;
|
|
82
86
|
similarity?: 'cosine' | 'dot_product' | 'l2_norm' | 'max_inner_product';
|
|
83
87
|
};
|
|
88
|
+
/**
|
|
89
|
+
* Options for semantic_text fields (ES 9.x — ML-powered text field for semantic/hybrid search).
|
|
90
|
+
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/semantic-text.html
|
|
91
|
+
*/
|
|
92
|
+
export type SemanticTextFieldOptions = {
|
|
93
|
+
inference_id?: string;
|
|
94
|
+
search_inference_id?: string;
|
|
95
|
+
model_settings?: {
|
|
96
|
+
task_type?: string;
|
|
97
|
+
[key: string]: unknown;
|
|
98
|
+
};
|
|
99
|
+
};
|
|
84
100
|
/** Sub-fields for nested and object field types */
|
|
85
101
|
export type NestedFields = Record<string, FieldMapping>;
|
|
86
102
|
/** Options for object fields (enabled flag only — sub-fields are the first argument) */
|
|
@@ -216,6 +232,9 @@ export type BooleanFieldMapping = TypedFieldMapping<'boolean'>;
|
|
|
216
232
|
export type BinaryFieldMapping = TypedFieldMapping<'binary'>;
|
|
217
233
|
export type IpFieldMapping = TypedFieldMapping<'ip'>;
|
|
218
234
|
export type DenseVectorFieldMapping = TypedFieldMapping<'dense_vector'>;
|
|
235
|
+
export type SparseVectorFieldMapping = TypedFieldMapping<'sparse_vector'>;
|
|
236
|
+
export type SemanticTextFieldMapping = TypedFieldMapping<'semantic_text'>;
|
|
237
|
+
export type UnsignedLongFieldMapping = TypedFieldMapping<'unsigned_long'>;
|
|
219
238
|
export type GeoPointFieldMapping = TypedFieldMapping<'geo_point'>;
|
|
220
239
|
export type GeoShapeFieldMapping = TypedFieldMapping<'geo_shape'>;
|
|
221
240
|
export type CompletionFieldMapping = TypedFieldMapping<'completion'>;
|