SHARE icon indicating copy to clipboard operation
SHARE copied to clipboard

[ENG-6189] trovesearch denormalized

Open aaxelb opened this issue 4 months 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