LP1844418 Global flag to enable ES for bib-search
authorBill Erickson <berickxx@gmail.com>
Wed, 23 Oct 2019 13:31:53 +0000 (09:31 -0400)
committerBill Erickson <berickxx@gmail.com>
Wed, 23 Oct 2019 13:31:53 +0000 (09:31 -0400)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/src/eg2/src/app/share/catalog/catalog.service.ts
Open-ILS/src/eg2/src/app/share/catalog/elastic.service.ts
Open-ILS/src/eg2/src/app/staff/catalog/resolver.service.ts
Open-ILS/src/sql/Pg/upgrade/XXXX.schema.elastic-search.sql

index 5a7ca99..0b20c53 100644 (file)
@@ -293,6 +293,11 @@ export class CatalogService {
         return facetData;
     }
 
+    checkSearchEngine(): Promise<any> {
+        return this.pcrud.retrieve('cgf', 'elastic.bib_search.enabled')
+        .toPromise().then(flag => this.elastic.enabled = flag.enabled() === 't');
+    }
+
     fetchCcvms(): Promise<void> {
 
         if (Object.keys(this.ccvmMap).length) {
index 23f3887..903dd0c 100644 (file)
@@ -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; }
 
index 1b6dac1..c377a27 100644 (file)
@@ -33,6 +33,7 @@ export class CatalogResolver implements Resolve<Promise<any[]>> {
         return Promise.all([
             this.cat.fetchCcvms(),
             this.cat.fetchCmfs(),
+            this.cat.checkSearchEngine(),
             this.fetchSettings(),
             this.basket.getRecordIds()
         ]);
index 3703ebd..b492659 100644 (file)
@@ -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.*';
 
 */