diff --git a/Services/server/src/controllers/searchController.ts b/Services/server/src/controllers/searchController.ts index 394e02a..cc9db6f 100644 --- a/Services/server/src/controllers/searchController.ts +++ b/Services/server/src/controllers/searchController.ts @@ -23,7 +23,11 @@ export class SearchController extends Controller { bool: { must: search.AND?.map((v) => ({ [type[search.exact || v.exact ? 1 : 0]]: { [v.field]: v.value }, - })), + })).concat({ + [["match", "prefix"][search.recursive ? 1 : 0]]: { + path: search.path?.join("/") || "", + }, + }), should: search.OR?.map((v) => ({ [type[search.exact || v.exact ? 1 : 0]]: { [v.field]: v.value }, })), diff --git a/Services/server/src/interfaces/search.ts b/Services/server/src/interfaces/search.ts index 7d20fc4..1ceedf3 100644 --- a/Services/server/src/interfaces/search.ts +++ b/Services/server/src/interfaces/search.ts @@ -10,4 +10,6 @@ export interface Search { exact?: boolean; }[]; exact?: boolean; + recursive?: boolean; + path?: string[]; }