From 71c7c03353e9c90dcc8f8040a33d2cc030d97a8f Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Wed, 23 Oct 2019 09:31:53 -0400 Subject: [PATCH] LP1844418 Global flag to enable ES for bib-search Signed-off-by: Bill Erickson --- Open-ILS/src/eg2/src/app/share/catalog/catalog.service.ts | 5 +++++ Open-ILS/src/eg2/src/app/share/catalog/elastic.service.ts | 3 +++ Open-ILS/src/eg2/src/app/staff/catalog/resolver.service.ts | 1 + Open-ILS/src/sql/Pg/upgrade/XXXX.schema.elastic-search.sql | 6 ++++-- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Open-ILS/src/eg2/src/app/share/catalog/catalog.service.ts b/Open-ILS/src/eg2/src/app/share/catalog/catalog.service.ts index 79fcbd68af..528de96fdf 100644 --- a/Open-ILS/src/eg2/src/app/share/catalog/catalog.service.ts +++ b/Open-ILS/src/eg2/src/app/share/catalog/catalog.service.ts @@ -384,6 +384,11 @@ export class CatalogService { return facetData; } + checkSearchEngine(): Promise { + return this.pcrud.retrieve('cgf', 'elastic.bib_search.enabled') + .toPromise().then(flag => this.elastic.enabled = flag.enabled() === 't'); + } + fetchCcvms(): Promise { if (Object.keys(this.ccvmMap).length) { diff --git a/Open-ILS/src/eg2/src/app/share/catalog/elastic.service.ts b/Open-ILS/src/eg2/src/app/share/catalog/elastic.service.ts index 23f3887da5..903dd0c48a 100644 --- a/Open-ILS/src/eg2/src/app/share/catalog/elastic.service.ts +++ b/Open-ILS/src/eg2/src/app/share/catalog/elastic.service.ts @@ -12,6 +12,8 @@ import {RequestBodySearch, MatchQuery, MultiMatchQuery, TermsQuery, Query, Sort, @Injectable() export class ElasticService { + enabled: boolean; + constructor( private idl: IdlService, private net: NetService, @@ -21,6 +23,7 @@ export class ElasticService { // Returns true if Elastic can provide search results. canSearch(ctx: CatalogSearchContext): boolean { + if (!this.enabled) { return false; } if (ctx.marcSearch.isSearchable()) { return true; } diff --git a/Open-ILS/src/eg2/src/app/staff/catalog/resolver.service.ts b/Open-ILS/src/eg2/src/app/staff/catalog/resolver.service.ts index b8e38b3ba3..4ab166331f 100644 --- a/Open-ILS/src/eg2/src/app/staff/catalog/resolver.service.ts +++ b/Open-ILS/src/eg2/src/app/staff/catalog/resolver.service.ts @@ -34,6 +34,7 @@ export class CatalogResolver implements Resolve> { return Promise.all([ this.cat.fetchCcvms(), this.cat.fetchCmfs(), + this.cat.checkSearchEngine(), this.fetchSettings(), this.basket.getRecordIds() ]); diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.elastic-search.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.elastic-search.sql index 3703ebd367..b492659c1c 100644 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.elastic-search.sql +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.elastic-search.sql @@ -22,6 +22,9 @@ UPDATE config.metabib_field INSERT INTO config.global_flag (name, enabled, label) VALUES ( + 'elastic.bib_search.enabled', FALSE, + 'Elasticsearch Enable Bib Searching' +), ( 'elastic.bib_search.dynamic_properties', FALSE, 'Elasticsearch Dynamic Bib Record Properties' ); @@ -255,8 +258,7 @@ ALTER TABLE config.record_attr_definition DROP COLUMN elastic_field; ALTER TABLE config.metabib_field DROP COLUMN elastic_field; -DELETE FROM config.global_flag - WHERE name = 'elastic.bib_search.dynamic_properties'; +DELETE FROM config.global_flag WHERE name ~ 'elastic.*'; */ -- 2.11.0