cry-search 2.1.1 → 2.3.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/CLAUDE.md +26 -0
- package/README.md +38 -0
- package/dist/vet/data/prevodi.d.ts +64 -0
- package/dist/vet/data/prevodi.d.ts.map +1 -0
- package/dist/vet/index.cjs +611 -54
- package/dist/vet/index.d.cts +3 -2
- package/dist/vet/index.d.ts +3 -2
- package/dist/vet/index.d.ts.map +1 -1
- package/dist/vet/index.js +611 -54
- package/dist/vet/normalizatorji.d.ts +45 -3
- package/dist/vet/normalizatorji.d.ts.map +1 -1
- package/dist/vet/ocena.d.ts +2 -0
- package/dist/vet/ocena.d.ts.map +1 -1
- package/dist/vet/spec.d.ts +28 -0
- package/dist/vet/spec.d.ts.map +1 -1
- package/package.json +3 -2
|
@@ -50,6 +50,38 @@ export declare const kolicinaNormalizator: ValueNormalizer;
|
|
|
50
50
|
* nedosledno — zato razred (kazen ob nasprotju), ne trdi žeton.
|
|
51
51
|
*/
|
|
52
52
|
export declare const vrstaNormalizator: ValueNormalizer;
|
|
53
|
+
/**
|
|
54
|
+
* Razdeljevalci: `&`, `+`, `,`, `;`, `|` med besedami se spremenijo v presledek, `zajec/riž`
|
|
55
|
+
* prav tako, `6/1` (razmerje pakiranja) pa ostane cel.
|
|
56
|
+
*
|
|
57
|
+
* Zakaj: `riž&krompir` je v jedru EN žeton, ki se ne ujame ne z `riž` ne s `krompir`,
|
|
58
|
+
* zato je bil par „Monge dog rabbit rice&potatoes“ brez kandidatov. Isto velja za
|
|
59
|
+
* `N&D CAT GF CHICK&POMEG. KITTEN`, kjer sta `CHICK` in `POMEG` dve besedi.
|
|
60
|
+
*
|
|
61
|
+
* Dodatno: par z `&`, kjer sta OBE strani velikostni besedi ali okrajšavi
|
|
62
|
+
* (`MED&MAXI`, `MINI&MED`), se razširi v polni besedi (`MEDIUM MAXI`) — sicer bi
|
|
63
|
+
* `MED` ostala neznana beseda, čeprav gre za velikost. `MED` sam (brez para) se
|
|
64
|
+
* namenoma NE razširi, ker je v slovenščini tudi „honey“ („z medom“).
|
|
65
|
+
*/
|
|
66
|
+
export declare const razdeljevalciNormalizator: ValueNormalizer;
|
|
67
|
+
/**
|
|
68
|
+
* Dvojezični leksikon (SI↔EN): angleške besede se preslikajo v kanonično slovensko
|
|
69
|
+
* obliko, marketinške/vezniške besede se odstranijo.
|
|
70
|
+
*
|
|
71
|
+
* Simetrično: ista preslikava velja za indeks in za poizvedbo, zato se
|
|
72
|
+
* „Monge dog rabbit rice potatoes“ in „MONGE DOG zajec, riž, krompir“ ujameta tudi,
|
|
73
|
+
* kadar je ena stran angleška. Znamk ne prevajamo (v leksikonu jih ni).
|
|
74
|
+
*/
|
|
75
|
+
export declare const prevodiNormalizator: ValueNormalizer;
|
|
76
|
+
/**
|
|
77
|
+
* Življenjska stopnja → razred `starost` (mladič/odrasel/senior), beseda se odstrani.
|
|
78
|
+
*
|
|
79
|
+
* Merjeno: `puppy` (145) in `adult` (234) sta v angleških nazivih zelo pogosta, v
|
|
80
|
+
* pantheonovem nazivu pa ju pogosto ni (`ADULT` je tam, kjer klik.vet napiše „puppy“).
|
|
81
|
+
* Kot beseda sta zato nižala pokritost kandidata; kot razred nasprotje kaznuje,
|
|
82
|
+
* odsotnost pa je nevtralna.
|
|
83
|
+
*/
|
|
84
|
+
export declare const starostNormalizator: ValueNormalizer;
|
|
53
85
|
/**
|
|
54
86
|
* Znamke in linije: `RC` → `ROYAL CANIN`, `SHN` → `ROYAL CANIN SHN`, `N&D` → `NATURAL DELICIOUS`.
|
|
55
87
|
*
|
|
@@ -88,9 +120,15 @@ export declare const tipskeOznakeNormalizator: ValueNormalizer;
|
|
|
88
120
|
/**
|
|
89
121
|
* Vsi vet normalizatorji v pravem vrstnem redu.
|
|
90
122
|
*
|
|
91
|
-
* Vrstni red je pomemben: decimalke → enote → znamke →
|
|
92
|
-
*
|
|
93
|
-
*
|
|
123
|
+
* Vrstni red je pomemben: decimalke → enote → znamke → ločila → prevodi → količine
|
|
124
|
+
* → velikost → starost → vrste → oznake.
|
|
125
|
+
*
|
|
126
|
+
* Zakaj tako:
|
|
127
|
+
* - znamke PRED ločili, ker `N&D` vsebuje `&` in bi ga razdelitev pokvarila
|
|
128
|
+
* (`zamkaNormalizator` ga razširi v `NATURAL DELICIOUS`);
|
|
129
|
+
* - prevodi PRED količinami/velikostmi/starostmi, ker angleški zapisi prinašajo
|
|
130
|
+
* enote (`tablets` → `tbl`), velikosti (`medium` → `M`) in stopnje (`puppy`);
|
|
131
|
+
* - količine pred vrstami, ker se `2 kg` ne sme razumeti kot vrsta.
|
|
94
132
|
*/
|
|
95
133
|
export declare const VET_NORMALIZATORJI: ValueNormalizer[];
|
|
96
134
|
/** Izvoz za teste in diagnostične skripte. */
|
|
@@ -99,6 +137,10 @@ export declare const VET_TABELA: {
|
|
|
99
137
|
linije: Map<string, string>;
|
|
100
138
|
dobavitelji: Set<string>;
|
|
101
139
|
oznake: Set<string>;
|
|
140
|
+
prevodi: Map<string, string>;
|
|
141
|
+
stopBesede: Set<string>;
|
|
142
|
+
starosti: Record<string, string>;
|
|
143
|
+
velikostiEn: Record<string, string>;
|
|
102
144
|
vir: string;
|
|
103
145
|
};
|
|
104
146
|
//# sourceMappingURL=normalizatorji.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizatorji.d.ts","sourceRoot":"","sources":["../../src/vet/normalizatorji.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"normalizatorji.d.ts","sourceRoot":"","sources":["../../src/vet/normalizatorji.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAKhD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,eAKnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAmB/B,CAAC;AAkDF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,eAmDlC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,eA0B/B,CAAC;AAYF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,yBAAyB,EAAE,eAuBvC,CAAC;AAMF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,eAgBjC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,eAYjC,CAAC;AAoEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,eA0BhC,CAAC;AAMF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,eAkBhC,CAAC;AAGF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,eAkBlC,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,0BAA0B,EAAE,eAUxC,CAAC;AAGF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,eAKnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,eAYtC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,EAAE,eAAe,EAc/C,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,UAAU;;;;;;;;;;CAUtB,CAAC"}
|
package/dist/vet/ocena.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ export interface VetRazredi {
|
|
|
6
6
|
vrsta?: string | string[];
|
|
7
7
|
/** Velikost (S/M/L/XL/XXL + mala/srednja/velika). */
|
|
8
8
|
velikost?: string | string[];
|
|
9
|
+
/** Življenjska stopnja (mladič / odrasel / senior). */
|
|
10
|
+
starost?: string | string[];
|
|
9
11
|
/** Pantheonova oznaka v nazivu: `neaktivno` (`**`), `prosto` (`*`). */
|
|
10
12
|
pantheon?: string | string[];
|
|
11
13
|
dobavitelj?: string | string[];
|
package/dist/vet/ocena.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ocena.d.ts","sourceRoot":"","sources":["../../src/vet/ocena.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ocena.d.ts","sourceRoot":"","sources":["../../src/vet/ocena.ts"],"names":[],"mappings":"AAuBA,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,QAAQ;IACvB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qCAAqC;IACrC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,4DAA4D;IAC5D,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oDAAoD;IACpD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA2ID;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,GAAE,kBAAuB,EACnC,OAAO,CAAC,EACJ;IAAE,SAAS,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;CAAE,GACzH,SAAS,GACZ,QAAQ,CA+JV"}
|
package/dist/vet/spec.d.ts
CHANGED
|
@@ -32,4 +32,32 @@ export declare function vetArtikelSpec<T extends SearchableObject>(nastavitve?:
|
|
|
32
32
|
* Uporabi jih vsak klic iskanja/uparjanja nad vet indeksom.
|
|
33
33
|
*/
|
|
34
34
|
export declare function vetQueryOpts(dodatni?: SearchOpts): SearchOpts;
|
|
35
|
+
/**
|
|
36
|
+
* Normalizatorji za **uporabniško iskanje** (iskalno polje v klik.vetu, demo stran):
|
|
37
|
+
* le tisti, ki besedilo ohranijo in samo poenotijo zapis.
|
|
38
|
+
*
|
|
39
|
+
* Zakaj druga podmnožica kot pri uparjanju (teh NI):
|
|
40
|
+
* - `kolicinaNormalizator`, `velikostNormalizator`, `starostNormalizator`,
|
|
41
|
+
* `vrstaNormalizator`, `oznakeNormalizator`, `tipskeOznakeNormalizator` besede
|
|
42
|
+
* ODSTRANIJO iz besedila (gredo v razrede). Za uparjanje je to prav (mehka
|
|
43
|
+
* semantika), za iskanje pa ne: uporabnik, ki vpiše `200ml`, `PRIB` ali `adult`,
|
|
44
|
+
* mora te zadetke dobiti;
|
|
45
|
+
* - `pantheonOznakaNormalizator` odstrani vodilne zvezdice (`**`), zato bi iskanje
|
|
46
|
+
* po njih prenehalo delovati (v indeksu so trenutno del besedila).
|
|
47
|
+
*
|
|
48
|
+
* Kar ostane, je natanko tisto, kar iskalnik potrebuje, da zadene tudi zapise v
|
|
49
|
+
* DRUGEM JEZIKU: enote (`tablet` → `tbl`), znamke (`RC` → `Royal Canin`), ločila
|
|
50
|
+
* (`riž&krompir` → dva žetona) in dvojezični leksikon (`rabbit` → `ZAJEC`).
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* const metadata = createSearchArrayMetadata(data, vetIskalniSpec({ polja: ['acName', 'acIdent'] }));
|
|
55
|
+
* searchAndRank('monge rabbit', data, metadata, vetIskalniQueryOpts({ exactKeysFn }));
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare const VET_ISKALNI_NORMALIZATORJI: ValueNormalizer[];
|
|
59
|
+
/** Spec za iskalni indeks artikelov (glej {@link VET_ISKALNI_NORMALIZATORJI}). */
|
|
60
|
+
export declare function vetIskalniSpec<T extends SearchableObject>(nastavitve?: VetSpecNastavitve): SearchableObjectSpec<T>;
|
|
61
|
+
/** Iskalne nastavitve poizvedbe za iskalni indeks (isti normalizatorji kot indeks). */
|
|
62
|
+
export declare function vetIskalniQueryOpts(dodatni?: SearchOpts): SearchOpts;
|
|
35
63
|
//# sourceMappingURL=spec.d.ts.map
|
package/dist/vet/spec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../src/vet/spec.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../src/vet/spec.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAWpG,oCAAoC;AACpC,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,kEAAkE;IAClE,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,qBAAqB,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CACpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,gBAAgB,EACvD,UAAU,GAAE,iBAAsB,GACjC,oBAAoB,CAAC,CAAC,CAAC,CAQzB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,UAAe,GAAG,UAAU,CAEjE;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,0BAA0B,EAAE,eAAe,EAOvD,CAAC;AAEF,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,CAAC,SAAS,gBAAgB,EACvD,UAAU,GAAE,iBAAsB,GACjC,oBAAoB,CAAC,CAAC,CAAC,CAQzB;AAED,uFAAuF;AACvF,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,UAAe,GAAG,UAAU,CAKxE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cry-search",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "A fast, memory-efficient search library for large datasets with support for tokenized matching, linked collections, and per-field match modes.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -46,7 +46,8 @@
|
|
|
46
46
|
"typecheck": "tsc --noEmit",
|
|
47
47
|
"gen:vet-data": "bun run scripts/gen-vet-data.ts",
|
|
48
48
|
"prepublishOnly": "bun run clean && bun run build",
|
|
49
|
-
"pripravi:pari": "bun run scripts/pripravi-pari.ts"
|
|
49
|
+
"pripravi:pari": "bun run scripts/pripravi-pari.ts",
|
|
50
|
+
"bench": "bun run scripts/bench-vet.ts"
|
|
50
51
|
},
|
|
51
52
|
"keywords": [
|
|
52
53
|
"search",
|