Skip to content

Commit 4d9d769

Browse files
committed
fiksi hakuun, handlaa '-' järkevästi
1 parent 2556586 commit 4d9d769

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

backend/src/search.ts

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ async function ensureStatuteCollection(lang: string): Promise<string> {
120120
{ name: "paragraphs", type: "string[]", locale: lang_short },
121121
{ name: "has_content", type: "int32" },
122122
],
123+
token_separators: ["-"],
123124
};
124125

125126
try {
@@ -150,8 +151,7 @@ async function ensureJudgmentCollection(lang: string): Promise<string> {
150151
{ name: "keywords", type: "string[]", locale: lang_short },
151152
{ name: "headings", type: "string[]", locale: lang_short },
152153
{ name: "paragraphs", type: "string[]", locale: lang_short },
153-
{ name: "has_content", type: "int32" },
154-
],
154+
{ name: "has_content", type: "int32" }, ],
155155
};
156156

157157
try {
@@ -524,11 +524,19 @@ export async function deleteCollection(name: string, lang: string) {
524524
}
525525
}
526526

527-
527+
function normalizeQuery(q: string): string {
528+
return q
529+
.toLowerCase()
530+
.replace(/\p{Punctuation}+/gu, ' ')
531+
.replace(/\s+/g, ' ')
532+
.trim();
533+
}
528534

529535
export async function searchStatutes(lang: string, queryStr: string): Promise<StatuteSearchResult[]> {
536+
const normalizedQ = normalizeQuery(queryStr);
537+
530538
const searchParameters: any = {
531-
q: queryStr,
539+
q: normalizedQ,
532540
query_by: "title,common_names,keywords,headings,year,number,paragraphs",
533541
query_by_weights: "50,49,48,20,15,10,1",
534542
prefix: "true",
@@ -547,10 +555,11 @@ export async function searchStatutes(lang: string, queryStr: string): Promise<St
547555
return searchResults.hits?.map((hit) => (hit.document as StatuteSearchResult)) || [];
548556
}
549557

550-
551558
export async function searchJudgments(lang: string, queryStr: string, level: string): Promise<JudgmentSearchResult[]> {
559+
const normalizedQ = normalizeQuery(queryStr);
560+
552561
const searchParameters: any = {
553-
q: queryStr,
562+
q: normalizedQ,
554563
query_by: "keywords,level,year,number,headings,paragraphs",
555564
query_by_weights: "60,50,49,48,10,1",
556565
prefix: "true",
@@ -560,6 +569,7 @@ export async function searchJudgments(lang: string, queryStr: string, level: str
560569
per_page: 20,
561570
include_fields: "year_num,number,level,has_content,keywords",
562571
};
572+
563573
if (level !== "any") {
564574
searchParameters.filter_by = `level:0${localeLevel(level, lang)}`;
565575
}
@@ -572,6 +582,6 @@ export async function searchJudgments(lang: string, queryStr: string, level: str
572582
return searchResults.hits?.map((hit) => {
573583
const doc = hit.document as JudgmentSearchResult;
574584
doc.level = localeLevelInverse(doc.level);
575-
return hit.document as JudgmentSearchResult
585+
return doc;
576586
}) || [];
577587
}

0 commit comments

Comments
 (0)