SHARE icon indicating copy to clipboard operation
SHARE copied to clipboard

[ENG-6189] trovesearch denormalized

Open aaxelb opened this issue 1 year ago • 1 comments

  • add trovesearch_denorm index strategy to speed up /trove/index-card-search and /trove/index-value-search requests
    • used by default when the TROVESEARCH_DENORMILY feature flag is up
    • stop using nested fields (what a wild choice that was)
      • to support indexing values at arbitrary paths, use dynamic templates
      • to support value-search with cardSearchFilter/cardSearchText params, index additional docs for each iri value in an indexcard (each with a full copy of the card's filterable fields -- this is the denormalization part)
    • include integer values (for sorting only, so far)
  • allow sorting by property-path (not only by a single property)

and assorted improvements from meanderings in #824

  • move the definition of available index-strategies from settings to static code (to fix having code that depends on settings being just so)
  • replace static methods on IndexStrategy with functions in share.search.index_strategy
  • add admin view to view mappings for an index
  • update abstract Elastic8IndexStrategy to support indexing multiple docs per index-card (required for denormalization above)
  • make tests reusable for index-strategies supporting trove-search
  • consolidate some logic shared across trove-y index strategies to reusable utils in share.search.index_strategy._trovesearch_util
  • more accurate type annotations

aaxelb avatar Oct 25 '24 20:10 aaxelb

Coverage Status

coverage: 91.14% (+0.5%) from 90.646% when pulling 46ccc83f4009bfa3f0d6e7da621bf8c26b8a42e5 on aaxelb:feature/6189-denormal into ec390586dedb763f36b4d0d53c03fdd274cc9c16 on CenterForOpenScience:develop.

coveralls avatar Oct 25 '24 20:10 coveralls