Table of Contents |
---|
...
In December 2020, it was determined that Elasticsearch is not the right tool for querying MARC records. SRS search has been removed from the scope of Elasticsearch POC and it has become a separate feature (UXPROD-2791).
Delivered functionality
...
- Implemented sending add/update/delete notification messages from Inventorymessage publication to Kafka in mod-inventory-storage
- Built Search APIs for searching and faceting
- Combined instances + holding + items into a single index
- Implemented re-index process for existing inventory DB
- Spring-based implementation that supports:
- Up to five language-specific analyzers configured on 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
...
- 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
...
Issue | Solution |
Noisy search results | Implemented searches supporting keyword “all” or “any” limiting the number of matches: MSEARCH-91 |
Expected results not found | All provided examples were related to the special characters in the Title that were searched using ASCII representation. The problem will be addressed in scope of MSEARCH-67 |
Bug in sorting by title | |
Support phrase search | |
Ranking refinement | Refinement of the default ranking system will require further analysis to be in the scope of a separate feature |
Discrepancy in saving UUIDs from Action menu | MSEARCH-93 and UISEES-58 |
UI enhancements and bug fixes | UISEES-47, UISEES-57, UISEES-61, UISEES-62, UISEES-48, UISEES-49 |
Two evaluators determined that the POC did not meet their expectations and provided the following reasons:
...
Search performance comparison
The table below represents comparison of response time for the same query executed in Inventory app and Inventory ES app in the environment with 8 million of instances:
Query | mod-inventory (PostgresSQL), s | Results Count | mod-search (Elsasticsearch), s | Results Count |
---|---|---|---|---|
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 |
...
Examples are taken from Jira Legacy server System JiraJIRA serverId 01505d01-b853-3c2e-90f1-ee9b165564fc key PERF-44
...
- Incorporate UI components created in scope of POC into Stripes components
- Redesign Inventory UI Search component so that it can include new UI components
- 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
Additional links
- TC Meeting on October 14, 2020
- UXPROD-2791 SRS MARC Query API
- Search – Technical documentation
- POC Evaluation survey
- Detailed responses to raised issues
- POC Overview for MM SIG (slides) and (recording)
- 110 -111 Sprints Demo
- Supported search types