@mailwoman/resolver-wof-sqlite 5.1.0 → 5.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/out/candidate-lookup.d.ts.map +1 -1
- package/out/candidate-lookup.js +7 -1
- package/out/candidate-lookup.js.map +1 -1
- package/out/geonames-aliases.d.ts +9 -0
- package/out/geonames-aliases.d.ts.map +1 -1
- package/out/geonames-aliases.js +76 -7
- package/out/geonames-aliases.js.map +1 -1
- package/out/geonames-postal.d.ts +64 -0
- package/out/geonames-postal.d.ts.map +1 -0
- package/out/geonames-postal.js +116 -0
- package/out/geonames-postal.js.map +1 -0
- package/out/lookup.d.ts +28 -0
- package/out/lookup.d.ts.map +1 -1
- package/out/lookup.js +265 -21
- package/out/lookup.js.map +1 -1
- package/out/schema.d.ts +5 -0
- package/out/schema.d.ts.map +1 -1
- package/out/sharding.d.ts +19 -1
- package/out/sharding.d.ts.map +1 -1
- package/out/sharding.js +39 -5
- package/out/sharding.js.map +1 -1
- package/out/types.d.ts +17 -0
- package/out/types.d.ts.map +1 -1
- package/out/unified-schema.d.ts.map +1 -1
- package/out/unified-schema.js +7 -0
- package/out/unified-schema.js.map +1 -1
- package/package.json +7 -6
package/out/lookup.js
CHANGED
|
@@ -18,7 +18,7 @@ import { COINCIDENT_ROLES_TABLE, coincidentRolesExists } from "./coincident-role
|
|
|
18
18
|
import { ADDRESS_CONVENTION_TABLE, resolveConvention, SeedConventionSource, } from "./convention.js";
|
|
19
19
|
import { aliasBagExactMatch, buildPlaceSearchFTS, PLACE_BBOX_TABLE, PLACE_POPULATION_TABLE, placeBboxExists, placePopulationExists, placeSearchFTSExists, } from "./fts.js";
|
|
20
20
|
import { bboxAround, haversineKm } from "./geo.js";
|
|
21
|
-
import { pickShardForPlacetype, resolveShards } from "./sharding.js";
|
|
21
|
+
import { pickShardForPlacetype, pickShardsForPlacetype, resolveShards, } from "./sharding.js";
|
|
22
22
|
import { SqliteConventionSource } from "./sqlite-convention-source.js";
|
|
23
23
|
const DEFAULT_WEIGHTS = {
|
|
24
24
|
placetypeMatchBoost: 0.5,
|
|
@@ -29,6 +29,7 @@ const DEFAULT_WEIGHTS = {
|
|
|
29
29
|
lengthPenaltyWeight: 0.1,
|
|
30
30
|
proximityBoost: 0.8,
|
|
31
31
|
proximityScaleKm: 100,
|
|
32
|
+
biasBoost: 4.0,
|
|
32
33
|
// populationBoost is intentionally large — empirical tuning against real WOF showed BM25 gaps
|
|
33
34
|
// of 1.5-3.0 between famous places and tiny same-name peers (because the famous ones have
|
|
34
35
|
// hundreds of alt-name entries that hurt their FTS document score). To consistently surface
|
|
@@ -45,6 +46,9 @@ const DEFAULT_WEIGHTS = {
|
|
|
45
46
|
// consulted — keeps population as an intra-tier prominence tiebreaker, not a cross-tier promoter.
|
|
46
47
|
// Fixes the 2-letter-region-abbrev bug ("ME" → Maine, not the more-populous Missouri).
|
|
47
48
|
exactMatchTiering: true,
|
|
49
|
+
// #936 option 3 — promoted default-ON 2026-07-03 (gate battery PASS; see the RankingWeights docstring).
|
|
50
|
+
officialNameExact: true,
|
|
51
|
+
officialNameExactFloor: 100_000,
|
|
48
52
|
};
|
|
49
53
|
/**
|
|
50
54
|
* Over-fetch floor for SHORT (≤3-char) queries — region abbreviations like "NY"/"VT". An exact-abbrev holder's BM25 is
|
|
@@ -54,6 +58,13 @@ const DEFAULT_WEIGHTS = {
|
|
|
54
58
|
* over-fetch comment.
|
|
55
59
|
*/
|
|
56
60
|
const SHORT_QUERY_OVERFETCH = 200;
|
|
61
|
+
/**
|
|
62
|
+
* How many rows the population-ordered companion fetch (#905) adds to the candidate pool. Small on purpose: its only
|
|
63
|
+
* job is to guarantee the FAMOUS holders of a name enter the pool at all — for "Paris"-class floods the bm25 window is
|
|
64
|
+
* saturated by thousands of tiny same-name rows and no boost inside the bm25-based ORDER BY can rescue a candidate
|
|
65
|
+
* whose bm25 is length-poisoned by ~15 points (see the fetch-site comment).
|
|
66
|
+
*/
|
|
67
|
+
const POPULATION_FETCH_LIMIT = 15;
|
|
57
68
|
/**
|
|
58
69
|
* The coordinate-first candidate table (scripts/build-postcode-locality.ts): postcode → containing
|
|
59
70
|
*
|
|
@@ -152,6 +163,8 @@ export class WOFSqlitePlaceLookup {
|
|
|
152
163
|
* override) schema names.
|
|
153
164
|
*/
|
|
154
165
|
#shards;
|
|
166
|
+
/** #920: per-schema probed country sets for country-aware shard routing (non-main shards only). */
|
|
167
|
+
#shardCountries;
|
|
155
168
|
/**
|
|
156
169
|
* The Geographic Rule Engine (Direction E, #289). `#conventionSource` supplies per-WOF-polygon resolution profiles;
|
|
157
170
|
* `#strategies` is the named-primitive registry the merged convention dispatches. Empty source → every query resolves
|
|
@@ -218,6 +231,25 @@ export class WOFSqlitePlaceLookup {
|
|
|
218
231
|
this.#hasBboxIndex.set(s.schemaName, this.#shardHasTable(s.schemaName, PLACE_BBOX_TABLE));
|
|
219
232
|
this.#hasPopulationIndex.set(s.schemaName, this.#shardHasTable(s.schemaName, PLACE_POPULATION_TABLE));
|
|
220
233
|
}
|
|
234
|
+
// #920 country-aware shard routing: probe each NON-MAIN shard's country set once at
|
|
235
|
+
// construction (they're small, purpose-built shards — postcode/locality slices; main is the
|
|
236
|
+
// multi-GB admin DB and is the fallback anyway, so it is deliberately NOT scanned). Feeds
|
|
237
|
+
// pickShardForPlacetype so two postcode shards (postalcode-us + postalcode-geonames-tail)
|
|
238
|
+
// route by the query's country instead of first-match starving the second shard.
|
|
239
|
+
this.#shardCountries = new Map();
|
|
240
|
+
for (const sh of this.#shards) {
|
|
241
|
+
if (sh.schemaName === "main")
|
|
242
|
+
continue;
|
|
243
|
+
try {
|
|
244
|
+
const rows = this.#db
|
|
245
|
+
.prepare(`SELECT DISTINCT country FROM ${sh.schemaName}.spr WHERE country != ''`)
|
|
246
|
+
.all();
|
|
247
|
+
this.#shardCountries.set(sh.schemaName, new Set(rows.map((r) => r.country)));
|
|
248
|
+
}
|
|
249
|
+
catch {
|
|
250
|
+
// A shard without spr (or an attach oddity) just doesn't participate in country routing.
|
|
251
|
+
}
|
|
252
|
+
}
|
|
221
253
|
// The postcode_locality table can live on any attached shard (typically its own
|
|
222
254
|
// `postcode-locality-<cc>.db`). Find the first shard that has it; null = coord-first disabled.
|
|
223
255
|
this.#postcodeLocalityShard =
|
|
@@ -266,6 +298,7 @@ export class WOFSqlitePlaceLookup {
|
|
|
266
298
|
// first → FTS fall-through exactly. Unknown strategy names are skipped, so a convention may name
|
|
267
299
|
// a primitive a future phase will register.
|
|
268
300
|
const convention = this.#conventionFor(query);
|
|
301
|
+
let outcome = [];
|
|
269
302
|
for (const name of convention.candidateStrategies) {
|
|
270
303
|
const strategy = this.#strategies.get(name);
|
|
271
304
|
if (!strategy) {
|
|
@@ -273,10 +306,36 @@ export class WOFSqlitePlaceLookup {
|
|
|
273
306
|
continue;
|
|
274
307
|
}
|
|
275
308
|
const result = await strategy(query, convention);
|
|
276
|
-
if (result !== null)
|
|
277
|
-
|
|
309
|
+
if (result !== null) {
|
|
310
|
+
outcome = result;
|
|
311
|
+
break;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
if (outcome.length > 0)
|
|
315
|
+
return outcome;
|
|
316
|
+
// #924: NL postcode retry ladder. The WOF NL postalcode repo stores full codes UNSPACED
|
|
317
|
+
// ('1012LG') plus 4-digit stems ('1012'), while Dutch addresses carry the spaced form
|
|
318
|
+
// ('1012 LG') — two FTS tokens that can never match the one-token doc (the #920 name law,
|
|
319
|
+
// resurfacing in a WOF-built shard). On a postcode-typed NL-shape miss, retry ONCE with the
|
|
320
|
+
// whitespace-joined form (block-level precision when the full-code row exists), then the
|
|
321
|
+
// 4-digit stem (area-level). Country-gated to NL — the same digits+letters shape elsewhere
|
|
322
|
+
// must not silently coarsen to a different system's code. Each retry only fires when its
|
|
323
|
+
// text differs from the current one, so the ladder terminates by construction.
|
|
324
|
+
if (query.country?.toUpperCase() === "NL" &&
|
|
325
|
+
(normalizePlacetypes(query.placetype)?.includes("postalcode") ?? false) &&
|
|
326
|
+
/^\d{4}\s?[A-Za-z]{2}$/.test(query.text.trim())) {
|
|
327
|
+
const trimmed = query.text.trim();
|
|
328
|
+
const joined = trimmed.replace(/\s+/g, "");
|
|
329
|
+
if (joined !== trimmed) {
|
|
330
|
+
const full = await this.findPlace({ ...query, text: joined });
|
|
331
|
+
if (full.length > 0)
|
|
332
|
+
return full;
|
|
333
|
+
}
|
|
334
|
+
const stem = trimmed.slice(0, 4);
|
|
335
|
+
if (stem !== trimmed)
|
|
336
|
+
return this.findPlace({ ...query, text: stem });
|
|
278
337
|
}
|
|
279
|
-
return
|
|
338
|
+
return outcome;
|
|
280
339
|
}
|
|
281
340
|
/**
|
|
282
341
|
* Dual-role localities coincident with an admin id, from the precomputed `coincident_roles` relation (#403). Backs
|
|
@@ -376,7 +435,7 @@ export class WOFSqlitePlaceLookup {
|
|
|
376
435
|
* Strategy `fallback_fuzzy_name_match` — the BM25 FTS name-match over the gazetteer, the universal fallback. Always
|
|
377
436
|
* returns an array (never null), so it terminates the dispatch chain.
|
|
378
437
|
*/
|
|
379
|
-
async #fuzzyNameMatch(query) {
|
|
438
|
+
async #fuzzyNameMatch(query, forceShard) {
|
|
380
439
|
const limit = query.limit ?? 10;
|
|
381
440
|
// Over-fetch so post-scoring + exact-match tiering have room to re-rank. SHORT queries (a 2–3-char
|
|
382
441
|
// region abbreviation like "NY"/"VT") are the danger case the `exactMatchTiering` docstring flags:
|
|
@@ -394,14 +453,44 @@ export class WOFSqlitePlaceLookup {
|
|
|
394
453
|
// fuzzy "Brooklyn Park, MN" won instead. Order-preserving: the FIRST entry stays the
|
|
395
454
|
// requested placetype, which is what shard routing keys off below.
|
|
396
455
|
const placetypes = expandPlacetypeFilter(normalizePlacetypes(query.placetype));
|
|
397
|
-
|
|
456
|
+
// Postcode-typed queries keep the #920 fused name-law shape; everything else splits on
|
|
457
|
+
// intra-token punctuation so hyphenated names reach the FTS as their real terms (#945).
|
|
458
|
+
const ftsQuery = sanitizeFTSQuery(query.text, { fuseTokens: placetypes?.includes("postalcode") ?? false });
|
|
398
459
|
if (!ftsQuery)
|
|
399
460
|
return [];
|
|
400
461
|
// Pick the shard for this query. Multi-shard routing is placetype-driven; a query without
|
|
401
462
|
// `placetype` always goes to main. (Mixed-placetype queries with multiple shards aren't
|
|
402
463
|
// supported in v1 — caller can issue two findPlace calls and merge in TS if needed.)
|
|
403
464
|
const firstPlacetype = placetypes?.[0];
|
|
404
|
-
|
|
465
|
+
// Bias fan-out (#58/proximity-bias): a country-less query WITH proximity hints must see the
|
|
466
|
+
// cross-shard ambiguity the hints exist to resolve — "48026" lives in postalcode-us AND
|
|
467
|
+
// postalcode-intl, and single-shard routing would hide one side. Query every matching shard
|
|
468
|
+
// (self-recursion with a shard pin), merge by id, and re-sort by the same (exact, prominence)
|
|
469
|
+
// keys the per-shard tier sort used. Bounded: hints + no country + >1 matching shard only.
|
|
470
|
+
const hasBiasHints = !!query.near || (query.bias?.length ?? 0) > 0;
|
|
471
|
+
if (!forceShard && hasBiasHints && !query.country) {
|
|
472
|
+
const matching = pickShardsForPlacetype(this.#shards, firstPlacetype);
|
|
473
|
+
if (matching.length > 1) {
|
|
474
|
+
const pools = [];
|
|
475
|
+
for (const sh of matching)
|
|
476
|
+
pools.push(await this.#fuzzyNameMatch(query, sh));
|
|
477
|
+
const byID = new Map();
|
|
478
|
+
for (const c of pools.flat()) {
|
|
479
|
+
if (!byID.has(c.id))
|
|
480
|
+
byID.set(c.id, c);
|
|
481
|
+
}
|
|
482
|
+
const merged = [...byID.values()];
|
|
483
|
+
merged.sort((a, b) => Number(b.exactMatch ?? false) - Number(a.exactMatch ?? false) ||
|
|
484
|
+
(b.prominence ?? 0) - (a.prominence ?? 0) ||
|
|
485
|
+
b.score - a.score);
|
|
486
|
+
return merged.slice(0, limit);
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
const shard = forceShard ??
|
|
490
|
+
pickShardForPlacetype(this.#shards, firstPlacetype, {
|
|
491
|
+
country: query.country,
|
|
492
|
+
countriesBySchema: this.#shardCountries,
|
|
493
|
+
});
|
|
405
494
|
const sch = shard.schemaName; // bare schema name; safe to interpolate (validated at construction)
|
|
406
495
|
// Filter out historical / superseded / deprecated places by default — they live in the same
|
|
407
496
|
// spr table but should never win a contemporary lookup. `is_current = 0` is the only WOF
|
|
@@ -453,6 +542,13 @@ export class WOFSqlitePlaceLookup {
|
|
|
453
542
|
//
|
|
454
543
|
// Formula: rank_adjusted = bm25 - populationBoost * min(1.0, log10(1 + pop) / scaleLog10)
|
|
455
544
|
// Lower rank_adjusted = better (matches SQLite's bm25 convention of "more negative = better").
|
|
545
|
+
//
|
|
546
|
+
// #905 — do NOT reach for bm25 column weights here. Measured falsification (2026-07-02): FTS5's
|
|
547
|
+
// bm25 length normalization is polluted by the row's TOTAL document size, so identical 1-token
|
|
548
|
+
// `name` docs read −16.0 (empty alt_names) vs −0.43 (2.7 KB alt_names) EVEN with the alt_names
|
|
549
|
+
// column weighted to zero — no weighting isolates name relevance in this schema. The famous-
|
|
550
|
+
// holder guarantee lives in the population-ordered companion fetch below instead, and the
|
|
551
|
+
// exact tier breaks ties by population in the post-scoring sort.
|
|
456
552
|
const orderByExpr = shardHasPopulation
|
|
457
553
|
? `(bm25(place_search) - ? * MIN(1.0, COALESCE(log10(1.0 + ${PLACE_POPULATION_TABLE}.population), 0) / ?))`
|
|
458
554
|
: "bm25(place_search)";
|
|
@@ -482,6 +578,39 @@ export class WOFSqlitePlaceLookup {
|
|
|
482
578
|
}
|
|
483
579
|
params.push(ftsLimit);
|
|
484
580
|
const rawRows = stmt.all(...params);
|
|
581
|
+
// #905 companion fetch: the same MATCH, ordered by population alone. For name floods
|
|
582
|
+
// ("Paris" matches thousands of gap-fill villages) the bm25-based window above cannot admit
|
|
583
|
+
// the famous holder — its bm25 is length-poisoned by the row's alias bulk (measured ~15 pts,
|
|
584
|
+
// vs a +4.0 boost cap), so FR Paris never even reaches post-scoring. This fetch makes the
|
|
585
|
+
// prominent holders of a name pool-complete BY CONSTRUCTION; the exact-tier sort below
|
|
586
|
+
// decides whether they win. Skipped without a population index (nothing to order by).
|
|
587
|
+
if (shardHasPopulation) {
|
|
588
|
+
const popStmt = this.#db.prepare(`
|
|
589
|
+
SELECT
|
|
590
|
+
spr.id AS id,
|
|
591
|
+
spr.name,
|
|
592
|
+
spr.placetype,
|
|
593
|
+
spr.country,
|
|
594
|
+
spr.parent_id,
|
|
595
|
+
bm25(place_search) AS rank,
|
|
596
|
+
spr.latitude AS lat,
|
|
597
|
+
spr.longitude AS lon,
|
|
598
|
+
spr.min_latitude, spr.max_latitude, spr.min_longitude, spr.max_longitude,
|
|
599
|
+
${populationSelect}
|
|
600
|
+
FROM ${sch}.place_search
|
|
601
|
+
${joinClause}
|
|
602
|
+
${populationJoin}
|
|
603
|
+
WHERE ${where.join(" AND ")}
|
|
604
|
+
ORDER BY COALESCE(${PLACE_POPULATION_TABLE}.population, 0) DESC
|
|
605
|
+
LIMIT ?
|
|
606
|
+
`);
|
|
607
|
+
const popParams = params.slice(0, params.length - 3); // drop the two boost params + ftsLimit
|
|
608
|
+
const seen = new Set(rawRows.map((r) => r.id));
|
|
609
|
+
for (const row of popStmt.all(...popParams, POPULATION_FETCH_LIMIT)) {
|
|
610
|
+
if (!seen.has(row.id))
|
|
611
|
+
rawRows.push(row);
|
|
612
|
+
}
|
|
613
|
+
}
|
|
485
614
|
const queryLen = query.text.length;
|
|
486
615
|
const candidates = rawRows.map((row) => {
|
|
487
616
|
// SQLite's bm25() returns a lower-is-better score (negative for matches). Negate so we
|
|
@@ -510,19 +639,45 @@ export class WOFSqlitePlaceLookup {
|
|
|
510
639
|
// coordinates. The formula decays smoothly with distance so close-but-not-exact hits
|
|
511
640
|
// still benefit; tunable via proximityBoost + proximityScaleKm.
|
|
512
641
|
let distanceKm;
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
642
|
+
// The best decayed-distance term over `near` + every `bias` point (each point's term is
|
|
643
|
+
// scaled by its weight; the MAX wins — a candidate near ANY hint is "nearby"). Carried
|
|
644
|
+
// into the exact-tier prominence sort below when hints are present.
|
|
645
|
+
let proximityTerm = 0;
|
|
646
|
+
if (row.lat !== null && row.lon !== null && !(row.lat === 0 && row.lon === 0)) {
|
|
647
|
+
const hints = [];
|
|
648
|
+
if (query.near)
|
|
649
|
+
hints.push({ lat: query.near.lat, lon: query.near.lon, weight: 1 });
|
|
650
|
+
for (const b of query.bias ?? [])
|
|
651
|
+
hints.push({ lat: b.lat, lon: b.lon, weight: b.weight ?? 1 });
|
|
652
|
+
let scoreTerm = 0;
|
|
653
|
+
for (const h of hints) {
|
|
654
|
+
const d = haversineKm(h.lat, h.lon, row.lat, row.lon);
|
|
655
|
+
const decay = h.weight / (1 + d / this.#weights.proximityScaleKm);
|
|
656
|
+
const prom = decay * this.#weights.biasBoost;
|
|
657
|
+
if (prom > proximityTerm) {
|
|
658
|
+
proximityTerm = prom;
|
|
659
|
+
distanceKm = d;
|
|
660
|
+
scoreTerm = decay * this.#weights.proximityBoost;
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
score += scoreTerm;
|
|
516
664
|
}
|
|
517
665
|
// Population boost: capped at `populationBoost` magnitude at `10^populationScaleLog10`
|
|
518
666
|
// people. Missing population → no contribution. Never penalizes.
|
|
667
|
+
let popTerm = 0;
|
|
519
668
|
if (row.population !== null && row.population > 0 && this.#weights.populationScaleLog10 > 0) {
|
|
520
669
|
const popLog = Math.log10(1 + row.population);
|
|
521
670
|
const popFraction = Math.min(1, popLog / this.#weights.populationScaleLog10);
|
|
522
|
-
|
|
671
|
+
popTerm = this.#weights.populationBoost * popFraction;
|
|
672
|
+
score += popTerm;
|
|
523
673
|
}
|
|
674
|
+
// Combined prominence for the exact-tier sort when proximity hints are present: population
|
|
675
|
+
// and nearness in the SAME additive units, so the map view / the user's location can win a
|
|
676
|
+
// cross-country postcode tie without a hard filter.
|
|
677
|
+
const prominence = popTerm + proximityTerm;
|
|
524
678
|
const candidate = {
|
|
525
679
|
id: row.id,
|
|
680
|
+
prominence,
|
|
526
681
|
name: row.name,
|
|
527
682
|
placetype: row.placetype,
|
|
528
683
|
country: row.country ?? "",
|
|
@@ -566,11 +721,55 @@ export class WOFSqlitePlaceLookup {
|
|
|
566
721
|
// crossing the exact/partial boundary ("ME" → Maine, not the more-populous Missouri).
|
|
567
722
|
for (const c of candidates)
|
|
568
723
|
c.exactMatch = exactIds.has(c.id);
|
|
569
|
-
if (exactIds.size > 0
|
|
724
|
+
if (exactIds.size > 0) {
|
|
725
|
+
// #905: WITHIN the exact tier, population is the PRIMARY key and the weighted score
|
|
726
|
+
// only breaks population ties. Exactness saturates text relevance, and the bm25
|
|
727
|
+
// residue inside `score` is length-noise (see the fetch-site comment), so letting it
|
|
728
|
+
// order the tier is what sent unscoped "Paris" to an Ohio township. The partial tier
|
|
729
|
+
// keeps score order — text relevance still means something there. This makes the
|
|
730
|
+
// exactMatchTiering docstring literal: match quality primary, prominence within.
|
|
731
|
+
//
|
|
732
|
+
// #912 sub-tier: a NAME-exact candidate (spr.name equals the query) outranks an
|
|
733
|
+
// ALIAS-exact one ('Paris' the place beats 'Paris Township' held via alias 'Paris').
|
|
734
|
+
// The place's own name is a stronger identity claim than an alias — aliases exist to
|
|
735
|
+
// widen recall, not to tie primaries. ME→Maine is untouched: 'ME' name-exact-matches
|
|
736
|
+
// nothing, so the alias sub-tier still decides there. Population orders within each
|
|
737
|
+
// sub-tier as before.
|
|
738
|
+
const norm = (v) => v.toLowerCase().trim().replace(/\s+/g, " ");
|
|
739
|
+
const needle = norm(query.text);
|
|
740
|
+
// #936 option 3: an OFFICIAL name (preferred form in an official language of the place's
|
|
741
|
+
// country, `names.official = 1`) counts as the place's own name for the sub-tier — "Åbo" is
|
|
742
|
+
// Turku's name, not merely its alias. Floor-gated on the holder's population (see the
|
|
743
|
+
// RankingWeights docstring for the measured 100k boundary). officialIds ⊆ exactIds by
|
|
744
|
+
// construction (official rows are names rows), so only the sub-tier KIND changes.
|
|
745
|
+
const officialIds = this.#weights.officialNameExact
|
|
746
|
+
? this.#officialNameIds(sch, candidates
|
|
747
|
+
.filter((c) => exactIds.has(c.id) && (c.population ?? 0) >= this.#weights.officialNameExactFloor)
|
|
748
|
+
.map((c) => c.id), query.text)
|
|
749
|
+
: undefined;
|
|
750
|
+
const kind = (c) => {
|
|
751
|
+
if (!exactIds.has(c.id))
|
|
752
|
+
return 0;
|
|
753
|
+
if (norm(String(c.name ?? "")) === needle)
|
|
754
|
+
return 2;
|
|
755
|
+
return officialIds?.has(c.id) ? 2 : 1;
|
|
756
|
+
};
|
|
757
|
+
// With proximity hints (near/bias), prominence (population + nearness, same units)
|
|
758
|
+
// replaces raw population as the within-tier key — the 48026 rule: the map view or
|
|
759
|
+
// the user's location breaks a cross-country postcode tie. Without hints, population
|
|
760
|
+
// ordering is byte-identical to before.
|
|
761
|
+
const hasHints = !!query.near || (query.bias?.length ?? 0) > 0;
|
|
570
762
|
candidates.sort((a, b) => {
|
|
571
|
-
const ax =
|
|
572
|
-
const bx =
|
|
573
|
-
|
|
763
|
+
const ax = kind(a);
|
|
764
|
+
const bx = kind(b);
|
|
765
|
+
if (bx !== ax)
|
|
766
|
+
return bx - ax;
|
|
767
|
+
if (ax >= 1) {
|
|
768
|
+
if (hasHints)
|
|
769
|
+
return (b.prominence ?? 0) - (a.prominence ?? 0) || b.score - a.score;
|
|
770
|
+
return (b.population ?? 0) - (a.population ?? 0) || b.score - a.score;
|
|
771
|
+
}
|
|
772
|
+
return b.score - a.score;
|
|
574
773
|
});
|
|
575
774
|
return Promise.resolve(candidates.slice(0, limit));
|
|
576
775
|
}
|
|
@@ -793,6 +992,30 @@ export class WOFSqlitePlaceLookup {
|
|
|
793
992
|
}
|
|
794
993
|
return out;
|
|
795
994
|
}
|
|
995
|
+
/**
|
|
996
|
+
* Among `ids` (already known exact matches), the subset holding `text` as an OFFICIAL name (`names.official = 1`, the
|
|
997
|
+
* #940 ingest bit). Same COLLATE NOCASE semantics as {@link WOFSqlitePlaceLookup.#exactMatchIds} so the two probes
|
|
998
|
+
* agree on what "equals the query" means. Fails soft on gazetteers built before #940 (no `official` column) — the
|
|
999
|
+
* sub-tier then behaves exactly as if `officialNameExact` were off.
|
|
1000
|
+
*/
|
|
1001
|
+
#officialNameIds(schemaName, ids, text) {
|
|
1002
|
+
const out = new Set();
|
|
1003
|
+
const trimmed = text.trim();
|
|
1004
|
+
if (ids.length === 0 || !trimmed)
|
|
1005
|
+
return out;
|
|
1006
|
+
const placeholders = ids.map(() => "?").join(", ");
|
|
1007
|
+
try {
|
|
1008
|
+
const rows = this.#db
|
|
1009
|
+
.prepare(`SELECT DISTINCT id FROM ${schemaName}.names WHERE id IN (${placeholders}) AND official = 1 AND name = ? COLLATE NOCASE`)
|
|
1010
|
+
.all(...ids, trimmed);
|
|
1011
|
+
for (const r of rows)
|
|
1012
|
+
out.add(r.id);
|
|
1013
|
+
}
|
|
1014
|
+
catch {
|
|
1015
|
+
// Pre-#940 gazetteer (no `official` column) or a names-less slim shard — feature inert.
|
|
1016
|
+
}
|
|
1017
|
+
return out;
|
|
1018
|
+
}
|
|
796
1019
|
close() {
|
|
797
1020
|
// Destroying the Kysely instance closes the underlying connection IF we own it. If the caller
|
|
798
1021
|
// passed in a pre-opened DatabaseSync (test fixture), respect their ownership.
|
|
@@ -839,22 +1062,43 @@ function normalizePlacetypes(p) {
|
|
|
839
1062
|
* - `"Paris"` → `"Paris"` (phrase)
|
|
840
1063
|
* - `"627*"` → `627*` (prefix)
|
|
841
1064
|
* - `"St. (Petersburg)"` → `"St" "Petersburg"` (two phrases, AND-joined)
|
|
1065
|
+
* - `"Thiron-Gardais"` → `"Thiron" "Gardais"` (intra-token punctuation SPLITS — #945; fusing to `ThironGardais` matched
|
|
1066
|
+
* nothing because the FTS doc tokenizes the hyphenated name as two terms)
|
|
1067
|
+
* - `"110 00"` with `fuseTokens` (postcode-typed) → `"110" "00"` per-token fused — the #920 name law
|
|
842
1068
|
* - `"Pari* TX"` → `Pari* "TX"` (mixed prefix + phrase)
|
|
843
1069
|
* - `"*"` alone → `""` (no body → drop)
|
|
844
1070
|
*/
|
|
845
|
-
function sanitizeFTSQuery(text) {
|
|
1071
|
+
function sanitizeFTSQuery(text, opts) {
|
|
846
1072
|
const out = [];
|
|
847
1073
|
for (const rawToken of text.normalize("NFKC").split(/\s+/u)) {
|
|
848
1074
|
const trimmed = rawToken.trim();
|
|
849
1075
|
if (!trimmed)
|
|
850
1076
|
continue;
|
|
851
1077
|
const hasPrefixStar = trimmed.endsWith("*");
|
|
852
|
-
//
|
|
853
|
-
//
|
|
854
|
-
|
|
855
|
-
|
|
1078
|
+
// #920 name law (postcode-typed queries ONLY): delete intra-token punctuation and FUSE the
|
|
1079
|
+
// remainder — postal names are stored in this collapsed shape ("SW1A" stays one term).
|
|
1080
|
+
if (opts?.fuseTokens) {
|
|
1081
|
+
const body = trimmed.replace(/[^\p{L}\p{N}]/gu, "");
|
|
1082
|
+
if (!body)
|
|
1083
|
+
continue;
|
|
1084
|
+
out.push(hasPrefixStar ? `${body}*` : `"${body.replace(/"/g, '""')}"`);
|
|
1085
|
+
continue;
|
|
1086
|
+
}
|
|
1087
|
+
// Everything else SPLITS on intra-token punctuation — the behavior the docstring always
|
|
1088
|
+
// promised ("St. (Petersburg)" → two phrases). The old code DELETED punctuation instead,
|
|
1089
|
+
// fusing "Thiron-Gardais" into the unmatchable single term `ThironGardais` while the FTS
|
|
1090
|
+
// doc holds two terms (#945 — the entire hyphenated-name class missed at the raw lookup;
|
|
1091
|
+
// masked for years because pre-splice tokenizers never emitted hyphen-preserved values).
|
|
1092
|
+
const parts = trimmed.split(/[^\p{L}\p{N}]+/u).filter(Boolean);
|
|
1093
|
+
if (parts.length === 0)
|
|
856
1094
|
continue;
|
|
857
|
-
|
|
1095
|
+
for (let i = 0; i < parts.length; i++) {
|
|
1096
|
+
const body = parts[i].replace(/\*/g, "");
|
|
1097
|
+
if (!body)
|
|
1098
|
+
continue;
|
|
1099
|
+
// The caller's trailing `*` applies to the FINAL part ("Thiron-Gard*" → "Thiron" Gard*).
|
|
1100
|
+
out.push(hasPrefixStar && i === parts.length - 1 ? `${body}*` : `"${body.replace(/"/g, '""')}"`);
|
|
1101
|
+
}
|
|
858
1102
|
}
|
|
859
1103
|
return out.join(" ");
|
|
860
1104
|
}
|
package/out/lookup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../lookup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../lookup.ts"],"names":[],"mappings":"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"}
|
package/out/schema.d.ts
CHANGED
|
@@ -65,6 +65,10 @@ export interface SprTable {
|
|
|
65
65
|
* tables with the same FK column name).
|
|
66
66
|
*
|
|
67
67
|
* No `kind` column in real WOF — the FTS build just concatenates ALL names per id.
|
|
68
|
+
*
|
|
69
|
+
* `official` (#936 ingest bit, our unified builds only; absent in real WOF dumps) marks a PREFERRED-form name in an
|
|
70
|
+
* official language of the place's country — the aliases eligible to join the name-exact tier under the option-3 rule.
|
|
71
|
+
* See `unified-schema.ts` for the full contract.
|
|
68
72
|
*/
|
|
69
73
|
export interface NamesTable {
|
|
70
74
|
id: number;
|
|
@@ -77,6 +81,7 @@ export interface NamesTable {
|
|
|
77
81
|
variant: string | null;
|
|
78
82
|
extension: string | null;
|
|
79
83
|
privateuse: string | null;
|
|
84
|
+
official: number | null;
|
|
80
85
|
name: string;
|
|
81
86
|
lastmodified: number;
|
|
82
87
|
}
|
package/out/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;CACpB;AAED
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../schema.ts"],"names":[],"mappings":"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"}
|
package/out/sharding.d.ts
CHANGED
|
@@ -90,5 +90,23 @@ export declare function resolveShards(input: string | ReadonlyArray<string | Sha
|
|
|
90
90
|
* the typical mailwoman query has a single placetype anyway. If a caller needs cross-shard results they can issue two
|
|
91
91
|
* `findPlace` calls.
|
|
92
92
|
*/
|
|
93
|
-
|
|
93
|
+
/**
|
|
94
|
+
* All placetype-matching shards, in routing order (the country-aware pick chooses among these). Used by the bias path:
|
|
95
|
+
* a country-less postcode query with proximity hints fans out across every matching shard and merges, because
|
|
96
|
+
* single-shard routing would hide the cross-country ambiguity the hints exist to resolve ("48026" lives in
|
|
97
|
+
* postalcode-us AND postalcode-intl).
|
|
98
|
+
*/
|
|
99
|
+
export declare function pickShardsForPlacetype(shards: ResolvedShard[], placetype: string | undefined): ResolvedShard[];
|
|
100
|
+
export declare function pickShardForPlacetype(shards: ResolvedShard[], placetype: string | undefined, opts?: {
|
|
101
|
+
/**
|
|
102
|
+
* #920: the query's country constraint, when the caller has one. With MULTIPLE shards matching a placetype
|
|
103
|
+
* (postalcode-us + postalcode-geonames-tail), first-match routing sent every postcode query to the first shard and
|
|
104
|
+
* starved the rest — a FI postcode could never reach the tail shard. When `country` is given and a matching shard's
|
|
105
|
+
* probed country set contains it, that shard wins; shards without the country are skipped; the placetype-match
|
|
106
|
+
* order remains the tiebreak when no shard claims the country (or none was probed).
|
|
107
|
+
*/
|
|
108
|
+
country?: string;
|
|
109
|
+
/** Per-schema probed country sets (see `WOFSqlitePlaceLookup`'s construction probe). */
|
|
110
|
+
countriesBySchema?: ReadonlyMap<string, ReadonlySet<string>>;
|
|
111
|
+
}): ResolvedShard;
|
|
94
112
|
//# sourceMappingURL=sharding.d.ts.map
|
package/out/sharding.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharding.d.ts","sourceRoot":"","sources":["../sharding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYrD;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAC7B;AAKD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,aAAa,EAAE,CAuClG;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"sharding.d.ts","sourceRoot":"","sources":["../sharding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYrD;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CAC7B;AAKD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,aAAa,EAAE,CAuClG;AAED;;;;;;;;;;;;;GAaG;AACH;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,EAAE,CAqB9G;AAED,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,aAAa,EAAE,EACvB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,IAAI,CAAC,EAAE;IACN;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wFAAwF;IACxF,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;CAC5D,GACC,aAAa,CAiCf"}
|