10 lines
282 B
TypeScript
10 lines
282 B
TypeScript
const FULL_TEXT_TOKEN_PATTERN = /[\p{L}\p{N}]+/gu;
|
|
|
|
export function buildBooleanFullTextQuery(search: string): string {
|
|
if (!search) return "";
|
|
|
|
const terms = search.normalize("NFKC").match(FULL_TEXT_TOKEN_PATTERN) ?? [];
|
|
|
|
return terms.map((term) => `+${term}*`).join(" ");
|
|
}
|