elasticlink 1.0.0-beta.1 → 1.0.0
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 +74 -31
- package/dist/index.cjs +1528 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1890 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.ts +1889 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1474 -18
- package/dist/index.js.map +1 -0
- package/package.json +27 -21
- package/dist/aggregation.builder.d.ts +0 -6
- package/dist/aggregation.builder.d.ts.map +0 -1
- package/dist/aggregation.builder.js +0 -81
- package/dist/aggregation.types.d.ts +0 -258
- package/dist/aggregation.types.d.ts.map +0 -1
- package/dist/aggregation.types.js +0 -6
- package/dist/bulk.builder.d.ts +0 -29
- package/dist/bulk.builder.d.ts.map +0 -1
- package/dist/bulk.builder.js +0 -51
- package/dist/bulk.types.d.ts +0 -47
- package/dist/bulk.types.d.ts.map +0 -1
- package/dist/bulk.types.js +0 -6
- package/dist/field.helpers.d.ts +0 -241
- package/dist/field.helpers.d.ts.map +0 -1
- package/dist/field.helpers.js +0 -333
- package/dist/field.types.d.ts +0 -348
- package/dist/field.types.d.ts.map +0 -1
- package/dist/field.types.js +0 -6
- package/dist/index-management.builder.d.ts +0 -38
- package/dist/index-management.builder.d.ts.map +0 -1
- package/dist/index-management.builder.js +0 -69
- package/dist/index-management.types.d.ts +0 -136
- package/dist/index-management.types.d.ts.map +0 -1
- package/dist/index-management.types.js +0 -6
- package/dist/mapping.builder.d.ts +0 -53
- package/dist/mapping.builder.d.ts.map +0 -1
- package/dist/mapping.builder.js +0 -39
- package/dist/mapping.types.d.ts +0 -200
- package/dist/mapping.types.d.ts.map +0 -1
- package/dist/mapping.types.js +0 -6
- package/dist/multi-search.builder.d.ts +0 -23
- package/dist/multi-search.builder.d.ts.map +0 -1
- package/dist/multi-search.builder.js +0 -48
- package/dist/multi-search.types.d.ts +0 -50
- package/dist/multi-search.types.d.ts.map +0 -1
- package/dist/multi-search.types.js +0 -6
- package/dist/query.builder.d.ts +0 -4
- package/dist/query.builder.d.ts.map +0 -1
- package/dist/query.builder.js +0 -329
- package/dist/query.types.d.ts +0 -468
- package/dist/query.types.d.ts.map +0 -1
- package/dist/query.types.js +0 -7
- package/dist/settings.presets.d.ts +0 -117
- package/dist/settings.presets.d.ts.map +0 -1
- package/dist/settings.presets.js +0 -137
- package/dist/suggester.builder.d.ts +0 -23
- package/dist/suggester.builder.d.ts.map +0 -1
- package/dist/suggester.builder.js +0 -51
- package/dist/suggester.types.d.ts +0 -90
- package/dist/suggester.types.d.ts.map +0 -1
- package/dist/suggester.types.js +0 -6
- package/dist/vector.types.d.ts +0 -17
- package/dist/vector.types.d.ts.map +0 -1
- package/dist/vector.types.js +0 -6
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mappings builder — creates a MappingsSchema artifact from field helper functions.
|
|
3
|
-
* The schema carries field-type info at compile time and ES-compatible properties at runtime.
|
|
4
|
-
*
|
|
5
|
-
* Defaults to `dynamic: 'strict'` to prevent unmapped fields from being silently
|
|
6
|
-
* indexed. Override with `mappings(fields, { dynamic: true })` if needed.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* import { mappings, text, keyword, float, denseVector } from 'elasticlink';
|
|
10
|
-
*
|
|
11
|
-
* const productMappings = mappings({
|
|
12
|
-
* name: text({ analyzer: 'standard' }),
|
|
13
|
-
* category: keyword(),
|
|
14
|
-
* price: float(),
|
|
15
|
-
* });
|
|
16
|
-
* // dynamic: 'strict' by default — unknown fields cause an indexing error
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* // Exclude dense_vector fields from _source to reduce response size
|
|
20
|
-
* const searchMappings = mappings({
|
|
21
|
-
* title: text(),
|
|
22
|
-
* embedding: denseVector({ dims: 768 }),
|
|
23
|
-
* }, {
|
|
24
|
-
* _source: { excludes: ['embedding'] },
|
|
25
|
-
* });
|
|
26
|
-
*/
|
|
27
|
-
import type { MappingOptions, MappingsSchema } from './mapping.types.js';
|
|
28
|
-
import type { FieldMappingWithLiteralType } from './field.types.js';
|
|
29
|
-
type UnionToIntersection<U> = (U extends unknown ? (x: U) => never : never) extends (x: infer I) => never ? I : never;
|
|
30
|
-
type FlattenSubFields<Prefix extends string, F extends Record<string, FieldMappingWithLiteralType>> = UnionToIntersection<{
|
|
31
|
-
[K in keyof F & string]: {
|
|
32
|
-
[Key in `${Prefix}.${K}`]: F[K]['type'];
|
|
33
|
-
} & (F[K] extends {
|
|
34
|
-
_subFields: infer Sub extends Record<string, FieldMappingWithLiteralType>;
|
|
35
|
-
} ? FlattenSubFields<`${Prefix}.${K}`, Sub> : Record<never, never>);
|
|
36
|
-
}[keyof F & string]>;
|
|
37
|
-
type FlattenMultiFields<Prefix extends string, MF extends Record<string, FieldMappingWithLiteralType>> = UnionToIntersection<{
|
|
38
|
-
[K in keyof MF & string]: {
|
|
39
|
-
[Key in `${Prefix}.${K}`]: MF[K]['type'];
|
|
40
|
-
};
|
|
41
|
-
}[keyof MF & string]>;
|
|
42
|
-
type ExtractFieldTypes<F extends Record<string, FieldMappingWithLiteralType>> = {
|
|
43
|
-
[K in keyof F]: F[K]['type'];
|
|
44
|
-
} & UnionToIntersection<{
|
|
45
|
-
[K in keyof F & string]: (F[K] extends {
|
|
46
|
-
_subFields: infer Sub extends Record<string, FieldMappingWithLiteralType>;
|
|
47
|
-
} ? FlattenSubFields<K, Sub> : Record<never, never>) & (F[K] extends {
|
|
48
|
-
_multiFields: infer MF extends Record<string, FieldMappingWithLiteralType>;
|
|
49
|
-
} ? FlattenMultiFields<K, MF> : Record<never, never>);
|
|
50
|
-
}[keyof F & string]>;
|
|
51
|
-
export declare const mappings: <F extends Record<string, FieldMappingWithLiteralType>>(fields: F, options?: MappingOptions) => MappingsSchema<ExtractFieldTypes<F>, F>;
|
|
52
|
-
export {};
|
|
53
|
-
//# sourceMappingURL=mapping.builder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mapping.builder.d.ts","sourceRoot":"","sources":["../src/mapping.builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAEpE,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC;AAEtH,KAAK,gBAAgB,CACnB,MAAM,SAAS,MAAM,EACrB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,IACnD,mBAAmB,CACrB;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG;SAAG,GAAG,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;KAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACnF,UAAU,EAAE,MAAM,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;KAC3E,GACG,gBAAgB,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GACvC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;CAC1B,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CACpB,CAAC;AAEF,KAAK,kBAAkB,CACrB,MAAM,SAAS,MAAM,EACrB,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,IACpD,mBAAmB,CACrB;KACG,CAAC,IAAI,MAAM,EAAE,GAAG,MAAM,GAAG;SAAG,GAAG,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;KAAE;CACvE,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CACrB,CAAC;AAEF,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,IAAI;KAC7E,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;CAC7B,GAAG,mBAAmB,CACrB;KACG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACrC,UAAU,EAAE,MAAM,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;KAC3E,GACG,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,GACxB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GACvB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACZ,YAAY,EAAE,MAAM,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;KAC5E,GACG,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,GACzB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;CAC5B,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CACpB,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,EAC5E,QAAQ,CAAC,EACT,UAAU,cAAc,KACvB,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAcxC,CAAC"}
|
package/dist/mapping.builder.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mappings builder — creates a MappingsSchema artifact from field helper functions.
|
|
3
|
-
* The schema carries field-type info at compile time and ES-compatible properties at runtime.
|
|
4
|
-
*
|
|
5
|
-
* Defaults to `dynamic: 'strict'` to prevent unmapped fields from being silently
|
|
6
|
-
* indexed. Override with `mappings(fields, { dynamic: true })` if needed.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* import { mappings, text, keyword, float, denseVector } from 'elasticlink';
|
|
10
|
-
*
|
|
11
|
-
* const productMappings = mappings({
|
|
12
|
-
* name: text({ analyzer: 'standard' }),
|
|
13
|
-
* category: keyword(),
|
|
14
|
-
* price: float(),
|
|
15
|
-
* });
|
|
16
|
-
* // dynamic: 'strict' by default — unknown fields cause an indexing error
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* // Exclude dense_vector fields from _source to reduce response size
|
|
20
|
-
* const searchMappings = mappings({
|
|
21
|
-
* title: text(),
|
|
22
|
-
* embedding: denseVector({ dims: 768 }),
|
|
23
|
-
* }, {
|
|
24
|
-
* _source: { excludes: ['embedding'] },
|
|
25
|
-
* });
|
|
26
|
-
*/
|
|
27
|
-
export const mappings = (fields, options) => {
|
|
28
|
-
const properties = { ...fields };
|
|
29
|
-
const mappingOptions = {
|
|
30
|
-
dynamic: 'strict',
|
|
31
|
-
...options
|
|
32
|
-
};
|
|
33
|
-
return {
|
|
34
|
-
_fieldTypes: undefined,
|
|
35
|
-
_fields: undefined,
|
|
36
|
-
properties,
|
|
37
|
-
_mappingOptions: mappingOptions
|
|
38
|
-
};
|
|
39
|
-
};
|
package/dist/mapping.types.d.ts
DELETED
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mapping schema types for compile-time field-type safety.
|
|
3
|
-
* MappingsSchema carries both runtime ES properties and a phantom type M
|
|
4
|
-
* that maps field names to their ES type literals.
|
|
5
|
-
*/
|
|
6
|
-
import type { FieldMapping, FieldTypeString, SourceConfig } from './index-management.types.js';
|
|
7
|
-
import type { FieldMappingWithLiteralType } from './field.types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Options for `mappings()`.
|
|
10
|
-
*
|
|
11
|
-
* @param dynamic - Controls how unmapped fields are handled. Defaults to `'strict'`
|
|
12
|
-
* to prevent unmapped fields from being silently indexed. Set to `true` to allow
|
|
13
|
-
* dynamic mapping, or `'runtime'` for runtime fields.
|
|
14
|
-
* @param _source - Configure which fields are stored in `_source`.
|
|
15
|
-
* Use `{ excludes: ['embedding'] }` to prune large dense_vector fields from
|
|
16
|
-
* returned `_source` — they remain searchable via kNN but won't bloat query responses.
|
|
17
|
-
* @param _meta - Custom metadata to attach to the mapping.
|
|
18
|
-
*/
|
|
19
|
-
export type MappingOptions = {
|
|
20
|
-
dynamic?: boolean | 'strict' | 'runtime';
|
|
21
|
-
_source?: SourceConfig;
|
|
22
|
-
_meta?: Record<string, unknown>;
|
|
23
|
-
};
|
|
24
|
-
export type MappingsSchema<M extends Record<string, FieldTypeString>, F extends Record<string, FieldMappingWithLiteralType> = Record<string, FieldMappingWithLiteralType>> = Readonly<{
|
|
25
|
-
_fieldTypes: M;
|
|
26
|
-
_fields?: F;
|
|
27
|
-
properties: Record<string, FieldMapping>;
|
|
28
|
-
_mappingOptions?: MappingOptions;
|
|
29
|
-
}>;
|
|
30
|
-
type ESTypeToTS = {
|
|
31
|
-
text: string;
|
|
32
|
-
match_only_text: string;
|
|
33
|
-
keyword: string;
|
|
34
|
-
constant_keyword: string;
|
|
35
|
-
wildcard: string;
|
|
36
|
-
long: number;
|
|
37
|
-
integer: number;
|
|
38
|
-
short: number;
|
|
39
|
-
byte: number;
|
|
40
|
-
float: number;
|
|
41
|
-
double: number;
|
|
42
|
-
half_float: number;
|
|
43
|
-
scaled_float: number;
|
|
44
|
-
date: string;
|
|
45
|
-
date_nanos: string;
|
|
46
|
-
boolean: boolean;
|
|
47
|
-
binary: string;
|
|
48
|
-
ip: string;
|
|
49
|
-
geo_point: {
|
|
50
|
-
lat: number;
|
|
51
|
-
lon: number;
|
|
52
|
-
};
|
|
53
|
-
geo_shape: Record<string, unknown>;
|
|
54
|
-
dense_vector: number[];
|
|
55
|
-
sparse_vector: Record<string, number>;
|
|
56
|
-
semantic_text: string;
|
|
57
|
-
unsigned_long: number | string;
|
|
58
|
-
completion: string | {
|
|
59
|
-
input: string[];
|
|
60
|
-
weight?: number;
|
|
61
|
-
};
|
|
62
|
-
search_as_you_type: string;
|
|
63
|
-
nested: unknown;
|
|
64
|
-
object: unknown;
|
|
65
|
-
flattened: Record<string, unknown>;
|
|
66
|
-
alias: unknown;
|
|
67
|
-
percolator: unknown;
|
|
68
|
-
integer_range: {
|
|
69
|
-
gte?: number;
|
|
70
|
-
lte?: number;
|
|
71
|
-
gt?: number;
|
|
72
|
-
lt?: number;
|
|
73
|
-
};
|
|
74
|
-
float_range: {
|
|
75
|
-
gte?: number;
|
|
76
|
-
lte?: number;
|
|
77
|
-
gt?: number;
|
|
78
|
-
lt?: number;
|
|
79
|
-
};
|
|
80
|
-
long_range: {
|
|
81
|
-
gte?: number;
|
|
82
|
-
lte?: number;
|
|
83
|
-
gt?: number;
|
|
84
|
-
lt?: number;
|
|
85
|
-
};
|
|
86
|
-
double_range: {
|
|
87
|
-
gte?: number;
|
|
88
|
-
lte?: number;
|
|
89
|
-
gt?: number;
|
|
90
|
-
lt?: number;
|
|
91
|
-
};
|
|
92
|
-
date_range: {
|
|
93
|
-
gte?: string;
|
|
94
|
-
lte?: string;
|
|
95
|
-
gt?: string;
|
|
96
|
-
lt?: string;
|
|
97
|
-
};
|
|
98
|
-
ip_range: {
|
|
99
|
-
gte?: string;
|
|
100
|
-
lte?: string;
|
|
101
|
-
gt?: string;
|
|
102
|
-
lt?: string;
|
|
103
|
-
} | string;
|
|
104
|
-
token_count: string | number;
|
|
105
|
-
murmur3: string;
|
|
106
|
-
join: string | {
|
|
107
|
-
name: string;
|
|
108
|
-
parent?: string;
|
|
109
|
-
};
|
|
110
|
-
rank_feature: number;
|
|
111
|
-
rank_features: Record<string, number>;
|
|
112
|
-
};
|
|
113
|
-
type InferSubFields<F extends Record<string, FieldMappingWithLiteralType>> = {
|
|
114
|
-
[K in keyof F]: F[K] extends {
|
|
115
|
-
_subFields: infer Sub extends Record<string, FieldMappingWithLiteralType>;
|
|
116
|
-
} ? F[K] extends {
|
|
117
|
-
type: 'nested';
|
|
118
|
-
} ? Array<InferSubFields<Sub>> : InferSubFields<Sub> : F[K]['type'] extends keyof ESTypeToTS ? ESTypeToTS[F[K]['type']] : unknown;
|
|
119
|
-
};
|
|
120
|
-
export type Infer<S> = S extends MappingsSchema<infer _M, infer F> ? InferSubFields<F> : never;
|
|
121
|
-
export type FieldsOfType<M extends Record<string, FieldTypeString>, Types extends FieldTypeString> = {
|
|
122
|
-
[K in keyof M]: M[K] extends Types ? K : never;
|
|
123
|
-
}[keyof M];
|
|
124
|
-
/**
|
|
125
|
-
* Removes keys from M that are sub-fields of a `nested` parent.
|
|
126
|
-
* For example, if `variants` is a nested field, `variants.color` is excluded.
|
|
127
|
-
* Used to prevent root-level query methods from accepting nested descendants —
|
|
128
|
-
* those fields must be queried inside a `.nested()` callback instead.
|
|
129
|
-
*/
|
|
130
|
-
type ExcludeNestedDescendants<M extends Record<string, FieldTypeString>> = {
|
|
131
|
-
[K in keyof M as K extends `${FieldsOfType<M, 'nested'> & string}.${string}` ? never : K]: M[K];
|
|
132
|
-
};
|
|
133
|
-
export type TextFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'text' | 'match_only_text' | 'search_as_you_type'>;
|
|
134
|
-
export type KeywordFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'keyword' | 'constant_keyword' | 'wildcard'>;
|
|
135
|
-
export type NumericFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'long' | 'integer' | 'short' | 'byte' | 'double' | 'float' | 'half_float' | 'scaled_float' | 'unsigned_long'>;
|
|
136
|
-
export type DateFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'date' | 'date_nanos'>;
|
|
137
|
-
export type BooleanFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'boolean'>;
|
|
138
|
-
export type GeoPointFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'geo_point'>;
|
|
139
|
-
export type GeoShapeFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'geo_shape'>;
|
|
140
|
-
/**
|
|
141
|
-
* Projection covering `rank_feature` and `rank_features` fields — valid targets for
|
|
142
|
-
* the `rank_feature` query and `distance_feature` (when using the rank_feature origin).
|
|
143
|
-
*/
|
|
144
|
-
export type RankFeatureFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'rank_feature' | 'rank_features'>;
|
|
145
|
-
/**
|
|
146
|
-
* Umbrella projection covering all vector-shaped field types (dense + sparse).
|
|
147
|
-
* Use the narrower `DenseVectorFields<M>` or `SparseVectorFields<M>` when a
|
|
148
|
-
* specific vector variant is required (e.g. `.knn()` dense-only, `.sparseVector()` sparse-only).
|
|
149
|
-
*/
|
|
150
|
-
export type VectorFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'dense_vector' | 'sparse_vector'>;
|
|
151
|
-
/**
|
|
152
|
-
* Fields valid as the target of a `.knn()` query — dense vector fields only.
|
|
153
|
-
* Kept as a dedicated alias so the `.knn()` constraint is explicit and so the broader
|
|
154
|
-
* `VectorFields<M>` umbrella can grow without loosening `.knn()`.
|
|
155
|
-
*/
|
|
156
|
-
export type DenseVectorFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'dense_vector'>;
|
|
157
|
-
/**
|
|
158
|
-
* Fields valid as the target of a `.sparseVector()` query — sparse vector fields only.
|
|
159
|
-
* Used by ELSER and other learned-sparse retrieval models.
|
|
160
|
-
*/
|
|
161
|
-
export type SparseVectorFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'sparse_vector'>;
|
|
162
|
-
/**
|
|
163
|
-
* Fields valid as the target of a completion suggester.
|
|
164
|
-
*/
|
|
165
|
-
export type CompletionFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'completion'>;
|
|
166
|
-
export type IpFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'ip'>;
|
|
167
|
-
/**
|
|
168
|
-
* Fields valid for sorting in Elasticsearch.
|
|
169
|
-
* Excludes `object`, `nested`, `dense_vector`, `binary`, `geo_shape`, `geo_point`, and other non-sortable types.
|
|
170
|
-
* Note: `geo_point` fields require the special `_geo_distance` sort syntax, not a plain field sort.
|
|
171
|
-
*/
|
|
172
|
-
export type SortableFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'keyword' | 'constant_keyword' | 'long' | 'integer' | 'short' | 'byte' | 'double' | 'float' | 'half_float' | 'scaled_float' | 'date' | 'boolean' | 'ip'>;
|
|
173
|
-
/**
|
|
174
|
-
* Fields valid for field collapsing in Elasticsearch.
|
|
175
|
-
* Collapse requires a keyword or numeric field.
|
|
176
|
-
*/
|
|
177
|
-
export type CollapsibleFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'keyword' | 'constant_keyword' | 'long' | 'integer' | 'short' | 'byte' | 'double' | 'float' | 'half_float' | 'scaled_float'>;
|
|
178
|
-
/**
|
|
179
|
-
* Fields valid for highlighting in Elasticsearch.
|
|
180
|
-
* Highlighting applies to text-like and keyword fields only.
|
|
181
|
-
*/
|
|
182
|
-
export type HighlightableFields<M extends Record<string, FieldTypeString>> = FieldsOfType<ExcludeNestedDescendants<M>, 'text' | 'match_only_text' | 'search_as_you_type' | 'keyword' | 'constant_keyword' | 'wildcard'>;
|
|
183
|
-
/** Maps a single FieldTypeString to its TypeScript value type. Used by Val<M,K> in query constraints. */
|
|
184
|
-
export type FieldValueType<T extends FieldTypeString> = T extends keyof ESTypeToTS ? ESTypeToTS[T] : unknown;
|
|
185
|
-
/**
|
|
186
|
-
* Extracts field names from M that have type `'nested'`.
|
|
187
|
-
* Used to constrain the `path` argument of `.nested()` to valid nested field names.
|
|
188
|
-
*/
|
|
189
|
-
export type NestedPathFields<M extends Record<string, FieldTypeString>> = FieldsOfType<M, 'nested'>;
|
|
190
|
-
/**
|
|
191
|
-
* Given a parent field path (e.g. `'tags'`), extracts the sub-fields of that path
|
|
192
|
-
* from the flat expanded M map. Keys like `'tags.label'` become `'label'` in the result.
|
|
193
|
-
*
|
|
194
|
-
* Used to provide a typed `ClauseBuilder` for the inner callback of `.nested()`.
|
|
195
|
-
*/
|
|
196
|
-
export type SubFieldsOf<M extends Record<string, FieldTypeString>, Path extends string> = {
|
|
197
|
-
[K in keyof M as K extends `${Path}.${infer Rest}` ? Rest : never]: M[K] & FieldTypeString;
|
|
198
|
-
};
|
|
199
|
-
export {};
|
|
200
|
-
//# sourceMappingURL=mapping.types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mapping.types.d.ts","sourceRoot":"","sources":["../src/mapping.types.ts"],"names":[],"mappings":"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"}
|
package/dist/mapping.types.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Multi-Search API builder
|
|
3
|
-
* Enables batching multiple search requests in a single API call
|
|
4
|
-
*/
|
|
5
|
-
import type { FieldTypeString } from './index-management.types.js';
|
|
6
|
-
import type { MappingsSchema } from './mapping.types.js';
|
|
7
|
-
import { MSearchBuilder, MSearchRequest, MSearchRequestParams } from './multi-search.types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Creates a multi-search builder
|
|
10
|
-
* @returns MSearchBuilder instance
|
|
11
|
-
*/
|
|
12
|
-
export declare const createMSearchBuilder: <M extends Record<string, FieldTypeString>>(searches?: MSearchRequest<M>[], params?: MSearchRequestParams) => MSearchBuilder<M>;
|
|
13
|
-
/**
|
|
14
|
-
* Create a new multi-search builder
|
|
15
|
-
* @example
|
|
16
|
-
* const ms = msearch(productMappings)
|
|
17
|
-
* .addQueryBuilder(queryBuilder(productMappings).match('name', 'shoe'), { index: 'products' })
|
|
18
|
-
* .addQueryBuilder(queryBuilder(productMappings).match('name', 'shirt'), { index: 'products' })
|
|
19
|
-
* .withParams({ max_concurrent_searches: 5, typed_keys: true })
|
|
20
|
-
* .build();
|
|
21
|
-
*/
|
|
22
|
-
export declare const msearch: <M extends Record<string, FieldTypeString>>(_schema: MappingsSchema<M>) => MSearchBuilder<M>;
|
|
23
|
-
//# sourceMappingURL=multi-search.builder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multi-search.builder.d.ts","sourceRoot":"","sources":["../src/multi-search.builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/F;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC5E,WAAU,cAAc,CAAC,CAAC,CAAC,EAAO,EAClC,SAAQ,oBAAyB,KAChC,cAAc,CAAC,CAAC,CAmCjB,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,SAAS,cAAc,CAAC,CAAC,CAAC,sBAClE,CAAC"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Multi-Search API builder
|
|
3
|
-
* Enables batching multiple search requests in a single API call
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Creates a multi-search builder
|
|
7
|
-
* @returns MSearchBuilder instance
|
|
8
|
-
*/
|
|
9
|
-
export const createMSearchBuilder = (searches = [], params = {}) => ({
|
|
10
|
-
add: (request) => {
|
|
11
|
-
return createMSearchBuilder([...searches, request], params);
|
|
12
|
-
},
|
|
13
|
-
addQuery: (body, header = {}) => {
|
|
14
|
-
return createMSearchBuilder([...searches, { header, body }], params);
|
|
15
|
-
},
|
|
16
|
-
addQueryBuilder: (qb, header = {}) => {
|
|
17
|
-
return createMSearchBuilder([...searches, { header, body: qb.build() }], params);
|
|
18
|
-
},
|
|
19
|
-
withParams: (next) => {
|
|
20
|
-
return createMSearchBuilder(searches, { ...params, ...next });
|
|
21
|
-
},
|
|
22
|
-
// eslint-disable-next-line functional/functional-parameters
|
|
23
|
-
build: () => {
|
|
24
|
-
return `${searches
|
|
25
|
-
.map(({ header, body }) => {
|
|
26
|
-
const headerLine = JSON.stringify(header || {});
|
|
27
|
-
const bodyLine = JSON.stringify(body);
|
|
28
|
-
return `${headerLine}\n${bodyLine}`;
|
|
29
|
-
})
|
|
30
|
-
.join('\n')}\n`;
|
|
31
|
-
},
|
|
32
|
-
// eslint-disable-next-line functional/functional-parameters
|
|
33
|
-
buildArray: () => {
|
|
34
|
-
return searches.flatMap(({ header, body }) => [header || {}, body]);
|
|
35
|
-
},
|
|
36
|
-
// eslint-disable-next-line functional/functional-parameters
|
|
37
|
-
buildParams: () => params
|
|
38
|
-
});
|
|
39
|
-
/**
|
|
40
|
-
* Create a new multi-search builder
|
|
41
|
-
* @example
|
|
42
|
-
* const ms = msearch(productMappings)
|
|
43
|
-
* .addQueryBuilder(queryBuilder(productMappings).match('name', 'shoe'), { index: 'products' })
|
|
44
|
-
* .addQueryBuilder(queryBuilder(productMappings).match('name', 'shirt'), { index: 'products' })
|
|
45
|
-
* .withParams({ max_concurrent_searches: 5, typed_keys: true })
|
|
46
|
-
* .build();
|
|
47
|
-
*/
|
|
48
|
-
export const msearch = (_schema) => createMSearchBuilder();
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type definitions for Multi-Search API
|
|
3
|
-
* Derived from official @elastic/elasticsearch types for accuracy and completeness.
|
|
4
|
-
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html
|
|
5
|
-
*/
|
|
6
|
-
import type { MsearchMultisearchHeader, MsearchRequest } from '@elastic/elasticsearch/lib/api/types';
|
|
7
|
-
import type { FieldTypeString } from './index-management.types.js';
|
|
8
|
-
import { QueryState, QueryBuilder } from './query.types.js';
|
|
9
|
-
/**
|
|
10
|
-
* Request-level parameters for a multi-search request — mirrors the subset of
|
|
11
|
-
* the official `MsearchRequest` type that is set at the top of the request
|
|
12
|
-
* (rather than per-sub-search). The builder applies these via
|
|
13
|
-
* `.withParams({...})` and exposes them on `.buildParams()` so callers can
|
|
14
|
-
* spread them into `client.msearch({...params, body: ndjson})`.
|
|
15
|
-
*/
|
|
16
|
-
export type MSearchRequestParams = Pick<MsearchRequest, 'max_concurrent_searches' | 'max_concurrent_shard_requests' | 'pre_filter_shard_size' | 'rest_total_hits_as_int' | 'typed_keys' | 'ccs_minimize_roundtrips' | 'search_type' | 'routing'>;
|
|
17
|
-
/**
|
|
18
|
-
* Header options for each search in a multi-search request — re-exported from official @elastic/elasticsearch types
|
|
19
|
-
* @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html
|
|
20
|
-
*/
|
|
21
|
-
export type MSearchHeader = MsearchMultisearchHeader;
|
|
22
|
-
/**
|
|
23
|
-
* A single search request in a multi-search operation
|
|
24
|
-
*/
|
|
25
|
-
export type MSearchRequest<M extends Record<string, FieldTypeString>> = {
|
|
26
|
-
/** Optional header for this search */
|
|
27
|
-
header?: MSearchHeader;
|
|
28
|
-
/** The query body */
|
|
29
|
-
body: QueryState<M>;
|
|
30
|
-
};
|
|
31
|
-
/**
|
|
32
|
-
* Multi-search builder interface
|
|
33
|
-
*/
|
|
34
|
-
export type MSearchBuilder<M extends Record<string, FieldTypeString>> = {
|
|
35
|
-
/** Add a search request with header and body */
|
|
36
|
-
add: (request: MSearchRequest<M>) => MSearchBuilder<M>;
|
|
37
|
-
/** Add a search using a pre-built query state */
|
|
38
|
-
addQuery: (body: QueryState<M>, header?: MSearchHeader) => MSearchBuilder<M>;
|
|
39
|
-
/** Add a search using a QueryBuilder directly — convenience over `.addQuery(qb.build(), header)` */
|
|
40
|
-
addQueryBuilder: (qb: QueryBuilder<M>, header?: MSearchHeader) => MSearchBuilder<M>;
|
|
41
|
-
/** Set request-level params (e.g. `max_concurrent_searches`, `typed_keys`). Merges with any previously set params. */
|
|
42
|
-
withParams: (params: MSearchRequestParams) => MSearchBuilder<M>;
|
|
43
|
-
/** Build as NDJSON string format for Elasticsearch */
|
|
44
|
-
build: () => string;
|
|
45
|
-
/** Build as array of objects (header, body pairs) */
|
|
46
|
-
buildArray: () => Array<MSearchHeader | QueryState<M>>;
|
|
47
|
-
/** Return the request-level params set via `.withParams()`, for spreading into `client.msearch()`. */
|
|
48
|
-
buildParams: () => MSearchRequestParams;
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=multi-search.types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multi-search.types.d.ts","sourceRoot":"","sources":["../src/multi-search.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACrG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,cAAc,EACZ,yBAAyB,GACzB,+BAA+B,GAC/B,uBAAuB,GACvB,wBAAwB,GACxB,YAAY,GACZ,yBAAyB,GACzB,aAAa,GACb,SAAS,CACZ,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI;IACtE,sCAAsC;IACtC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,qBAAqB;IACrB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI;IACtE,gDAAgD;IAChD,GAAG,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC;IACvD,iDAAiD;IACjD,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,aAAa,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC;IAC7E,oGAAoG;IACpG,eAAe,EAAE,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,aAAa,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC;IACpF,sHAAsH;IACtH,UAAU,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC;IAChE,sDAAsD;IACtD,KAAK,EAAE,MAAM,MAAM,CAAC;IACpB,qDAAqD;IACrD,UAAU,EAAE,MAAM,KAAK,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,sGAAsG;IACtG,WAAW,EAAE,MAAM,oBAAoB,CAAC;CACzC,CAAC"}
|
package/dist/query.builder.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { FieldTypeString } from './index-management.types.js';
|
|
2
|
-
import type { QueryState, QueryBuilder } from './query.types.js';
|
|
3
|
-
export declare const createQueryBuilder: <M extends Record<string, FieldTypeString>>(state?: QueryState<M>) => QueryBuilder<M>;
|
|
4
|
-
//# sourceMappingURL=query.builder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"query.builder.d.ts","sourceRoot":"","sources":["../src/query.builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EA8Bb,MAAM,kBAAkB,CAAC;AA2L1B,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC1E,QAAO,UAAU,CAAC,CAAC,CAAM,KACxB,YAAY,CAAC,CAAC,CAyRhB,CAAC"}
|