diff --git a/server/core/src/indexer/fulltextPush.ts b/server/core/src/indexer/fulltextPush.ts index 0ceb29e800..683fcdf58b 100644 --- a/server/core/src/indexer/fulltextPush.ts +++ b/server/core/src/indexer/fulltextPush.ts @@ -239,7 +239,7 @@ export function createElasticDoc (upd: DocIndexState): IndexedDoc { _class: [upd.objectClass, ...(upd.mixins ?? [])], modifiedBy: upd.modifiedBy, modifiedOn: upd.modifiedOn, - space: upd.space, + space: [upd.space], attachedTo: upd.attachedTo, attachedToClass: upd.attachedToClass } @@ -321,6 +321,8 @@ function updateDoc2Elastic ( const spaceKey = docKey('space', { _class: core.class.Doc }) if (doc[spaceKey] !== undefined) { - doc.space = doc[spaceKey] + const existsingSpace = Array.isArray(doc.space) ? doc.space : [doc.space] + const newSpaces = Array.isArray(doc[spaceKey]) ? doc[spaceKey] : [doc[spaceKey]] + doc.space = [...existsingSpace, ...newSpaces].filter((it, idx, arr) => arr.indexOf(it) === idx) } } diff --git a/server/core/src/indexer/types.ts b/server/core/src/indexer/types.ts index f08aac7fae..fa1deb3ee7 100644 --- a/server/core/src/indexer/types.ts +++ b/server/core/src/indexer/types.ts @@ -107,4 +107,4 @@ export const fieldStateId = 'fld-v15' /** * @public */ -export const fullTextPushStageId = 'fts-v16' +export const fullTextPushStageId = 'fts-v17' diff --git a/server/core/src/types.ts b/server/core/src/types.ts index fb42dc9817..8e59d664ff 100644 --- a/server/core/src/types.ts +++ b/server/core/src/types.ts @@ -213,7 +213,7 @@ export interface EmbeddingSearchOption { export interface IndexedDoc { id: Ref _class: Ref>[] - space: Ref + space: Ref[] modifiedOn: Timestamp modifiedBy: Ref attachedTo?: Ref diff --git a/server/elastic/src/__tests__/adapter.test.ts b/server/elastic/src/__tests__/adapter.test.ts index 8e6b20d4fc..fdb1f699d5 100644 --- a/server/elastic/src/__tests__/adapter.test.ts +++ b/server/elastic/src/__tests__/adapter.test.ts @@ -44,7 +44,7 @@ describe('Elastic Adapter', () => { _class: ['class1' as Ref>], modifiedBy: 'andrey' as Ref, modifiedOn: 0, - space: 'space1' as Ref, + space: ['space1' as Ref], content0: 'hey there!' } await adapter.index(doc)