summaryrefslogtreecommitdiff
path: root/packages/backend/src/core/SearchService.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/backend/src/core/SearchService.ts')
-rw-r--r--packages/backend/src/core/SearchService.ts22
1 files changed, 21 insertions, 1 deletions
diff --git a/packages/backend/src/core/SearchService.ts b/packages/backend/src/core/SearchService.ts
index 28b8ee8073..392799da75 100644
--- a/packages/backend/src/core/SearchService.ts
+++ b/packages/backend/src/core/SearchService.ts
@@ -52,6 +52,7 @@ function compileQuery(q: Q): string {
@Injectable()
export class SearchService {
+ private readonly meilisearchIndexScope: 'local' | 'global' | string[] = 'local';
private meilisearchNoteIndex: Index | null = null;
constructor(
@@ -92,6 +93,10 @@ export class SearchService {
},
});
}
+
+ if (config.meilisearch?.scope) {
+ this.meilisearchIndexScope = config.meilisearch.scope;
+ }
}
@bindThis
@@ -100,7 +105,22 @@ export class SearchService {
if (!['home', 'public'].includes(note.visibility)) return;
if (this.meilisearch) {
- this.meilisearchNoteIndex!.addDocuments([{
+ switch (this.meilisearchIndexScope) {
+ case 'global':
+ break;
+
+ case 'local':
+ if (note.userHost == null) break;
+ return;
+
+ default: {
+ if (note.userHost == null) break;
+ if (this.meilisearchIndexScope.includes(note.userHost)) break;
+ return;
+ }
+ }
+
+ await this.meilisearchNoteIndex?.addDocuments([{
id: note.id,
createdAt: note.createdAt.getTime(),
userId: note.userId,