cry-search 2.2.0 → 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/README.md +12 -0
- package/dist/vet/index.cjs +26 -0
- package/dist/vet/index.d.cts +1 -1
- package/dist/vet/index.d.ts +1 -1
- package/dist/vet/index.d.ts.map +1 -1
- package/dist/vet/index.js +26 -0
- package/dist/vet/spec.d.ts +28 -0
- package/dist/vet/spec.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -569,6 +569,18 @@ brand names are never translated, and marketing/connector words (`care`, `for`,
|
|
|
569
569
|
dropped. `razdeljevalciNormalizator` splits `&`/`+`/`/` inside names, and life stages
|
|
570
570
|
(`puppy`/`kitten`/`adult`/`senior`) become the soft class `starost`.
|
|
571
571
|
|
|
572
|
+
For a **user-facing search field** the same lexicon must be in the search index, but the
|
|
573
|
+
class-producing normalizers have to stay out (a user searching `200ml`, `PRIB` or `adult` must
|
|
574
|
+
still find those rows). That is what `vetIskalniSpec()` / `vetIskalniQueryOpts()` are for:
|
|
575
|
+
|
|
576
|
+
```typescript
|
|
577
|
+
import { vetIskalniSpec, vetIskalniQueryOpts } from 'cry-search/vet';
|
|
578
|
+
|
|
579
|
+
const metadata = createSearchArrayMetadata(data, vetIskalniSpec({ polja: ['acName', 'acIdent'] }));
|
|
580
|
+
searchAndRank('monge rabbit', data, metadata, vetIskalniQueryOpts({ exactKeysFn }));
|
|
581
|
+
// → najde `MONGE DOG ADULT zajec, riž, krompir 2,5kg` (leksikon rabbit → zajec)
|
|
582
|
+
```
|
|
583
|
+
|
|
572
584
|
With `vrniNesprejete: true` the domain module keeps candidates that fail the acceptance rule and
|
|
573
585
|
marks them (`sprejeto: false`) instead of dropping them — useful in UIs where the user decides.
|
|
574
586
|
|
package/dist/vet/index.cjs
CHANGED
|
@@ -46,6 +46,7 @@ __export(exports_vet, {
|
|
|
46
46
|
STOP_BESEDE: () => STOP_BESEDE,
|
|
47
47
|
VELIKOSTI_EN: () => VELIKOSTI_EN,
|
|
48
48
|
VELIKOSTI_OKRAJSAVE: () => VELIKOSTI_OKRAJSAVE,
|
|
49
|
+
VET_ISKALNI_NORMALIZATORJI: () => VET_ISKALNI_NORMALIZATORJI,
|
|
49
50
|
VET_NORMALIZATORJI: () => VET_NORMALIZATORJI,
|
|
50
51
|
VET_TABELA: () => VET_TABELA,
|
|
51
52
|
VRSTE_SINONIMI: () => VRSTE_SINONIMI,
|
|
@@ -65,6 +66,8 @@ __export(exports_vet, {
|
|
|
65
66
|
upariVseSync: () => upariVseSync,
|
|
66
67
|
velikostNormalizator: () => velikostNormalizator,
|
|
67
68
|
vetArtikelSpec: () => vetArtikelSpec,
|
|
69
|
+
vetIskalniQueryOpts: () => vetIskalniQueryOpts,
|
|
70
|
+
vetIskalniSpec: () => vetIskalniSpec,
|
|
68
71
|
vetQueryOpts: () => vetQueryOpts,
|
|
69
72
|
vrstaNormalizator: () => vrstaNormalizator,
|
|
70
73
|
znamkaNormalizator: () => znamkaNormalizator
|
|
@@ -1680,6 +1683,29 @@ function vetArtikelSpec(nastavitve = {}) {
|
|
|
1680
1683
|
function vetQueryOpts(dodatni = {}) {
|
|
1681
1684
|
return { ...dodatni, queryNormalizers: [...VET_NORMALIZATORJI, ...dodatni.queryNormalizers ?? []] };
|
|
1682
1685
|
}
|
|
1686
|
+
var VET_ISKALNI_NORMALIZATORJI = [
|
|
1687
|
+
kodiranjeNormalizator,
|
|
1688
|
+
decimalkeNormalizator,
|
|
1689
|
+
enoteNormalizator,
|
|
1690
|
+
znamkaNormalizator,
|
|
1691
|
+
razdeljevalciNormalizator,
|
|
1692
|
+
prevodiNormalizator
|
|
1693
|
+
];
|
|
1694
|
+
function vetIskalniSpec(nastavitve = {}) {
|
|
1695
|
+
const polja = nastavitve.polja ?? ["naziv"];
|
|
1696
|
+
return {
|
|
1697
|
+
searchInFields: [...polja],
|
|
1698
|
+
keyFields: [...nastavitve.keyFields ?? polja],
|
|
1699
|
+
...nastavitve.prviTokeni !== undefined ? { firstTokensN: nastavitve.prviTokeni } : {},
|
|
1700
|
+
valueNormalizers: [...VET_ISKALNI_NORMALIZATORJI, ...nastavitve.dodatniNormalizatorji ?? []]
|
|
1701
|
+
};
|
|
1702
|
+
}
|
|
1703
|
+
function vetIskalniQueryOpts(dodatni = {}) {
|
|
1704
|
+
return {
|
|
1705
|
+
...dodatni,
|
|
1706
|
+
queryNormalizers: [...VET_ISKALNI_NORMALIZATORJI, ...dodatni.queryNormalizers ?? []]
|
|
1707
|
+
};
|
|
1708
|
+
}
|
|
1683
1709
|
// src/types/index.ts
|
|
1684
1710
|
var DEFAULT_PHONE_FIELDS = ["telefon", "phone", "gsm", "msisdn"];
|
|
1685
1711
|
var DEFAULT_FIRST_TOKENS_N = 8;
|
package/dist/vet/index.d.cts
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
export { VET_NORMALIZATORJI, VET_TABELA } from './normalizatorji';
|
|
16
16
|
export { decimalkeNormalizator, enoteNormalizator, kolicinaNormalizator, oznakeNormalizator, prevodiNormalizator, razdeljevalciNormalizator, starostNormalizator, velikostNormalizator, vrstaNormalizator, znamkaNormalizator, } from './normalizatorji';
|
|
17
|
-
export { vetArtikelSpec, vetQueryOpts, type VetSpecNastavitve } from './spec';
|
|
17
|
+
export { VET_ISKALNI_NORMALIZATORJI, vetArtikelSpec, vetIskalniQueryOpts, vetIskalniSpec, vetQueryOpts, type VetSpecNastavitve, } from './spec';
|
|
18
18
|
/** Iz jedra ponovno izvoženo, ker je del vet pogodbe (razredi poizvedbe). */
|
|
19
19
|
export { normalizeQueryWithOpts } from '../common/numeric/prepareQueryVariants';
|
|
20
20
|
export { oceniPar, type VetOcena, type VetOcenaNastavitve, type VetRazredi } from './ocena';
|
package/dist/vet/index.d.ts
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
export { VET_NORMALIZATORJI, VET_TABELA } from './normalizatorji';
|
|
16
16
|
export { decimalkeNormalizator, enoteNormalizator, kolicinaNormalizator, oznakeNormalizator, prevodiNormalizator, razdeljevalciNormalizator, starostNormalizator, velikostNormalizator, vrstaNormalizator, znamkaNormalizator, } from './normalizatorji';
|
|
17
|
-
export { vetArtikelSpec, vetQueryOpts, type VetSpecNastavitve } from './spec';
|
|
17
|
+
export { VET_ISKALNI_NORMALIZATORJI, vetArtikelSpec, vetIskalniQueryOpts, vetIskalniSpec, vetQueryOpts, type VetSpecNastavitve, } from './spec';
|
|
18
18
|
/** Iz jedra ponovno izvoženo, ker je del vet pogodbe (razredi poizvedbe). */
|
|
19
19
|
export { normalizeQueryWithOpts } from '../common/numeric/prepareQueryVariants';
|
|
20
20
|
export { oceniPar, type VetOcena, type VetOcenaNastavitve, type VetRazredi } from './ocena';
|
package/dist/vet/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vet/index.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vet/index.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,EAC1B,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,KAAK,iBAAiB,GACvB,MAAM,QAAQ,CAAC;AAChB,6EAA6E;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAC5F,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/vet/index.js
CHANGED
|
@@ -1607,6 +1607,29 @@ function vetArtikelSpec(nastavitve = {}) {
|
|
|
1607
1607
|
function vetQueryOpts(dodatni = {}) {
|
|
1608
1608
|
return { ...dodatni, queryNormalizers: [...VET_NORMALIZATORJI, ...dodatni.queryNormalizers ?? []] };
|
|
1609
1609
|
}
|
|
1610
|
+
var VET_ISKALNI_NORMALIZATORJI = [
|
|
1611
|
+
kodiranjeNormalizator,
|
|
1612
|
+
decimalkeNormalizator,
|
|
1613
|
+
enoteNormalizator,
|
|
1614
|
+
znamkaNormalizator,
|
|
1615
|
+
razdeljevalciNormalizator,
|
|
1616
|
+
prevodiNormalizator
|
|
1617
|
+
];
|
|
1618
|
+
function vetIskalniSpec(nastavitve = {}) {
|
|
1619
|
+
const polja = nastavitve.polja ?? ["naziv"];
|
|
1620
|
+
return {
|
|
1621
|
+
searchInFields: [...polja],
|
|
1622
|
+
keyFields: [...nastavitve.keyFields ?? polja],
|
|
1623
|
+
...nastavitve.prviTokeni !== undefined ? { firstTokensN: nastavitve.prviTokeni } : {},
|
|
1624
|
+
valueNormalizers: [...VET_ISKALNI_NORMALIZATORJI, ...nastavitve.dodatniNormalizatorji ?? []]
|
|
1625
|
+
};
|
|
1626
|
+
}
|
|
1627
|
+
function vetIskalniQueryOpts(dodatni = {}) {
|
|
1628
|
+
return {
|
|
1629
|
+
...dodatni,
|
|
1630
|
+
queryNormalizers: [...VET_ISKALNI_NORMALIZATORJI, ...dodatni.queryNormalizers ?? []]
|
|
1631
|
+
};
|
|
1632
|
+
}
|
|
1610
1633
|
// src/types/index.ts
|
|
1611
1634
|
var DEFAULT_PHONE_FIELDS = ["telefon", "phone", "gsm", "msisdn"];
|
|
1612
1635
|
var DEFAULT_FIRST_TOKENS_N = 8;
|
|
@@ -2998,6 +3021,7 @@ export {
|
|
|
2998
3021
|
STOP_BESEDE,
|
|
2999
3022
|
VELIKOSTI_EN,
|
|
3000
3023
|
VELIKOSTI_OKRAJSAVE,
|
|
3024
|
+
VET_ISKALNI_NORMALIZATORJI,
|
|
3001
3025
|
VET_NORMALIZATORJI,
|
|
3002
3026
|
VET_TABELA,
|
|
3003
3027
|
VRSTE_SINONIMI,
|
|
@@ -3017,6 +3041,8 @@ export {
|
|
|
3017
3041
|
upariVseSync,
|
|
3018
3042
|
velikostNormalizator,
|
|
3019
3043
|
vetArtikelSpec,
|
|
3044
|
+
vetIskalniQueryOpts,
|
|
3045
|
+
vetIskalniSpec,
|
|
3020
3046
|
vetQueryOpts,
|
|
3021
3047
|
vrstaNormalizator,
|
|
3022
3048
|
znamkaNormalizator
|
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",
|