From be1e8169ba21b89a8523f5d7592e291b56dd86cc Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Mon, 17 Jul 2023 17:06:39 +0800 Subject: [PATCH] exclude items with newsletter or rss labels in library --- packages/api/src/elastic/pages.ts | 39 ++++++++++++++++++------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/packages/api/src/elastic/pages.ts b/packages/api/src/elastic/pages.ts index 3bb7c1095..f948c655a 100644 --- a/packages/api/src/elastic/pages.ts +++ b/packages/api/src/elastic/pages.ts @@ -149,30 +149,37 @@ const appendInFilter = (builder: ESBuilder, filter: InFilter): ESBuilder => { }, }) case InFilter.LIBRARY: - return builder.query('nested', { - path: 'labels', - query: { - bool: { - should: [ - { + return builder.query('bool', { + should: [ + { + nested: { + path: 'labels', + query: { term: { 'labels.name': 'library', }, }, - { - bool: { - must_not: { - terms: { - 'labels.name': ['newsletter', 'rss'], + }, + }, + { + bool: { + must_not: [ + { + nested: { + path: 'labels', + query: { + terms: { + 'labels.name': ['newsletter', 'rss'], + }, }, }, - should: [], }, - }, - ], - minimum_should_match: 1, + ], + should: [], + }, }, - }, + ], + minimum_should_match: 1, }) case InFilter.SUBSCRIPTION: return builder