Table of Contents |
---|
Scope
To address the poor performance of the inventory search, the Technical Council recommended to investigate a possible Elasticsearch implementation. The scope of the work was determined to include following deliverables for the Iris release:
...
- Expected to perform complex queries of multiple fields and across record types (including MARC fields)
- Expected a different UI more like a catalog or discovery system advanced search
- Expected support for additional operators (not equal to, starts with, etc.)
- UI not user friendly
- Preferred a simple left-anchored search than the provided relevancy ranking
Search performance comparison
query | mod-inventory (postgres), s | mod-search (elsasticsearch), s | ||
---|---|---|---|---|
keyword all "April" sortby title&limit=100&offset=0 | 4 | 37408 | 1 | 41268 |
*keyword all "April" sortby title&limit=100&offset=1001 | 5 | 37408 | 1 | 41268 |
keyword all "agency" and source=FOLIO sortby title&limit=100&offset=0 | 3.5 | 1000 | 0.8 | 3536 |
keyword all "bill" sortby title&limit=100&offset=0 | 5 | 50149 | 0.6 | 60992 |
keyword all "set" sortby title&limit=100&offset=0 | 7 | 307 | 0.8 | 156751 |
For all Elasticsearch queries after calling the same query 3 times, the time for all subsequent quires is less than 250ms (due to OOB caching)
Average time
First examples are taken from Jira Legacy server System Jira serverId 01505d01-b853-3c2e-90f1-ee9b165564fc key PERF-44
Proposed next steps
- Redesign Inventory UI Search component so that it can include new UI components created by POC, especially filters and facets
- Conduct usability study for advanced search textbox
- Use mod-search endpoints for searching
- Conduct analysis of ranking refinements (weights and boosts)
- Conduct analysis of further search refinements
- Define and prioritize work for cross app/cross record types searches
- Define UI for cross app/cross record types searches
- Define requirements for cross-tenant searches
...