Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Scope

To address the poor performance of the inventory search, the In October 2020, Technical Council recommended to investigate a possible Elasticsearch implementation .   The scope to address poor performance of the work inventory search. Scope was determined to include the following deliverables for the Iris release: 

Back-end:

  • Sending Send update notification messages from inventory and source record storage (SRS)
  • Providing Provide Inventory and SRS APIs for fetching view for indexing by ids
  • Extract common library for using it in other modules
  • Build infrastructure necessary to support Elasticsearch

...

In December 2020, it was determined that Elasticsearch is not the right tool for querying  querying MARC records.   SRS search has been removed from the scope of Elasticsearch POC and it became has become a separate feature (UXPROD-2791).

Delivered functionality

The work Work delivered by the Falcon team as a part of the Iris release includes:

Back-end:

  • Sending Implemented sending add/update/delete notification messages from Inventory
  • Built Search APIs for searching and faceting
  • Combined instances + holding + items into a single index
  • Implemented re-index process for existing inventory DB
  • Spring base -based implementation that supports:
    • Up to five language-specific analyzers configured on the tenant level
    • Near real-time inserts, updates and deletions
    • Boolean operators (AND, OR, NOT)
    • Nested search using brackets
    • All or Any keyword search
    • Exact phrase search
    • Left- , and right-hand truncation, wildcards searches in some fields

...

Due to the rigid structure of the existing Inventory's Search Component,   it was not possible to make any changes that would allow for switching between PostgreSQL and Elasticsearch implementation.     To provide users with an easy way to evaluate the back-end work, we built an alternative UI (Inventory ES app) that allowed non-technical users compare performance behavior between the existing search and the search powered by Elasticsearch.  The new UI introduced:

  • New UI components for advanced search that include:
    • Auto-resized textbox,
    • Supported fields and operators auto-suggestion
    • Boolean operators support
    • Nested search using brackets
  • New UI components for filters and facets
  • Default results sort by ranking
  • Preserved other non-search related Inventory app functionality

...

querymod-inventory (postgres), s
mod-search (elsasticsearch), s

keyword all "April" sortby title&limit=100&offset=0

437408141268

*keyword all "April" sortby title&limit=100&offset=1001

537408141268
keyword all "agency" and source=FOLIO sortby title&limit=100&offset=0
3.510000.83536
keyword all "bill" sortby title&limit=100&offset=05501490.660992
keyword all "set" sortby title&limit=100&offset=0 73070.8156751

...