From ab3ebd2851b9ccbea21fc8feb1260afae70ed9a1 Mon Sep 17 00:00:00 2001 From: wulff007 Date: Mon, 28 Oct 2024 10:35:36 +0300 Subject: [PATCH] fix settings meilisearch --- src/data-indexer/data-indexer.ts | 21 ++++++++++++--------- src/datasources/datasourceV2.service.ts | 3 ++- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/data-indexer/data-indexer.ts b/src/data-indexer/data-indexer.ts index 9cee320..3a208f7 100644 --- a/src/data-indexer/data-indexer.ts +++ b/src/data-indexer/data-indexer.ts @@ -196,13 +196,13 @@ export class DataIndexer { if (!index) { await this.createIndex(indexUid) index = await this.getIndex(indexUid) - await this.updateIndexSettings(index/*, params.dataSourceConfig.fields*/) + await this.updateIndexSettings(index, params.dataSourceConfig.fields) } else if (!params.ids || !params.ids.length){ newIndexUid = `${indexUid}__new__` await this.searchClient.deleteIndexIfExists(newIndexUid) await this.createIndex(newIndexUid) index = await this.getIndex(newIndexUid) - await this.updateIndexSettings(index, /*params.dataSourceConfig.fields*/) + await this.updateIndexSettings(index, params.dataSourceConfig.fields) } @@ -475,20 +475,23 @@ export class DataIndexer { throw task.error } - async updateIndexSettings(index: Index/*, fields: DatasourceField[]*/) { + async updateIndexSettings(index: Index, fields: DatasourceField[]) { + //let sort = fields.filter(f=>f.sortable).map(f=>f.alias) - //let filter = fields.filter(f=>f.filterable).map(f=>f.alias) + let filter = fields.filter(f=>f.filterable).map(f=>f.alias) //let search = fields.filter(f=>f.searchable).map(f=>f.alias) - // Need add filterable link field id to index linked data after update linked item - // fields.filter(f => f.type === 'link' || f.type === 'enum').forEach(i => { - // filter.push(`${i.alias}.id`) - // }) + //Need add filterable link field id to index linked data after update linked item + fields.filter(f => f.type === 'link' || f.type === 'enum').forEach(i => { + filter.push(`${i.alias}.id`) + }) + + console.log(filter) let taskUid = (await index.updateSettings({ sortableAttributes: ['*'], displayedAttributes: ['*'], - filterableAttributes: ['*'], + filterableAttributes: filter, searchableAttributes: ['*'] })).taskUid diff --git a/src/datasources/datasourceV2.service.ts b/src/datasources/datasourceV2.service.ts index 03aba52..f7d3d42 100644 --- a/src/datasources/datasourceV2.service.ts +++ b/src/datasources/datasourceV2.service.ts @@ -475,7 +475,8 @@ export class DataSourceV2Service { await this.indexer.createIndex(indexUid) index = await this.indexer.getIndex(indexUid) } - await this.indexer.updateIndexSettings(index, /*ds.fields*/) + let full = await this.getConfigByAlias(alias, true) + await this.indexer.updateIndexSettings(index, full.fields) await this.indexer.dataReindex({dataSourceConfig: ds}, context) }