A single keyword filter is currently implemented as an OR condition group with CONTAINS queries across multiple fields. To simplify this query and make it more forgivable, we should save a sanitized keyword field to event entities and query that directly.

Technical Approach

Server Side

  1. Create a new base field on events called (keywords?) See hook_entity_bundle_fields_info_alter
  2. Implement hook_node_presave on events to update that field with a concatenated version of
    1. Title
    2. Content
    3. Intro
    4. Teaser
    5. Event tag titles
  3. Sanitize that field to remove special characters and trim white space
  4. Implement hook_taxonomy_term_update to update all events when their corresponding event tags have been edited
  5. Implement a queue worker to prevent overloading the server with a lot of event update operations See polaris_search module

Client Side

  1. Update keyword filter method to query the single field
  2. Ensure the keyword is sanitized before making the request

Comments

pixelwhip created an issue. See original summary.

pixelwhip’s picture

pixelwhip’s picture

Assigned: pixelwhip » attheshow
Status: Active » Needs review
pixelwhip’s picture

Fixing issues with multiple special characters and ":" not being updated in the url.

  • attheshow committed 2a7446a on 8.x-1.x
    Issues #2984682, #3055044, #3055104 by kaythay, pixelwhip, attheshow,...
attheshow’s picture

Status: Needs review » Fixed

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.