Xon - Search Improvements - Xenforo 2

Xon - Search Improvements - Xenforo 2 2.13.1

Xon - Search Improvements - Xenforo 2.webp


A collection of improvements to XF's Enhanced Search and some for XenForo's default MySQL search.

MySQL & Elastic Search features;
  • range_query search DSL
    • allows arbitrary range queries for numerical data
  • Allow users to select the default search order independent for the forum wide setting.
    • Re-adds the global option for the default search type
Elastic Search Only features:
  • Add ability to push "can view threads/tickets by other" permission(s) into ElasticSearch query, reducing php-side culling of matching content.
    This improves searching forums/tickets where the user lacks these permissions.
    This is gated behind the option Push "View X by others" check into XFES', as it requires a full reindex. (Default disabled)
    Supports the following add-ons:
    • View Sticky Threads (free) add-on.
    • Collaborative Threads (paid) add-on.
    • @NixFifty's Tickets (paid) add-on.
    For best results, use ElasticSearch Essentials add-on, as it simplifies this permission constraint compared to stock XenForo
  • Per content type weighting
  • Adds Elastic Search information to the AdminCP home screen.
  • Adds a debug option to log the search DSL queries to error log for troubleshooting
  • Option to extend search syntax to permit;
    • + signifies AND operation
    • | signifies OR operation
    • - negates a single token
    • " wraps a number of tokens to signify a phrase for searching
    • * at the end of a term signifies a prefix query
    • ( and ) signify precedence
    • ~N after a word signifies edit distance (fuzziness)
    • ~N after a phrase signifies slop amount
    • In order to search for any of these special characters, they will need to be escaped with \.
  • "Specialized index" support
    • Specialized search index allows generating single-purpose elastic search indexes while re-using as much XF search infrastructure as possible.
    • Username auto-complete powered by elasticsearch
      These are examples of a "specialized index".
      The username autocomplete it creates an index with just the user/email and replaces the admin quick search and front-end username autocomplete with an elasticsearch powered version.
      The tag autocomplete replaces the front-end tag autocomplete with an elasticsearch powered version.
      In both cases this allows non-start-of-string matching, with typo tolerance.
 

Attachments

Last edited:
Top