A collection of improvements to XF's Enhanced Search and some for XenForo's default MySQL search.
MySQL & Elastic Search features;
Elastic Search Only 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.
- Per content type weighting
- Adds Elastic Search information to the AdminCP home screen.
- Adds a debug option to log the...
- Fix the "Default search order" option would get reset when changing "Search options" under Enhanced Search Setup page
This feature is powering tag autocomplete and username autocomplete which supports partial matches, and non-prefix lookups on SpaceBattles.
- Require XenForo 2.2+, removes xf2.0/xf2.1 support
- Add "Specialized index" support
- Specialized search index allows generating single-purpose elastic search indexes while re-using as much XF search infrastructure as possible.
- Elasticsearch index is more akin to an SQL table than an entire database, so for very specific...
- Fix "array_fill_keys() expects parameter 1 to be array, null given" error when content weighting has not been configured
- Fix incorrectly adding a return type to XF\Search\Search::isValidContentType
- Fix typo in admincp options phrase
- Fix bug where 'weight by content type' feature didn't work as expected in general search
- Thanks to @NamePros for sponsoring this update.
- Display various search term constraints on the search results form.
For developers to implement support in 3rd party add-ons:
- Each search constraint needs a svSearchConstraint. prefixed phrase.
Arrays are mapped to phrases by adding a _ for each sub-array/key as such; c[warning][points][lower] =>...
- Remove usage of utf8_* function(s), and use native php multi-byte functions instead.
- Fix HTML markup error in svPushViewOtherCheckIntoXFES option description
- Fix "before" search result term would print an integer instead of a human readable yyyy-mm-dd formatted string
- Change 'no results found' handling to display search terms on the relevent page
- If using ElasticSearch Essentials, recommend updating to v3.13.0+ as this change may impact some options which display on no results found.
- Fixes for search term on results page
- Add missing "With X thread" search term
- Fix "Users" search term could fail to...
- Fix cached search results would be unexpectedly be viewable to anyone if they guessed the search result URL.
- Affected versions; v2.8.1
- These search URLs expire after a day
- Fix search term on search result pages leaking information for non-viewable content
- Affected version; v2.7.4, v2.7.5 and v2.8.1
- Fix leaking thread title when using "In thread" search area, and rendering a bad phrase if the thread doesn't exist
- Fix linking to non-active user...
- Fix searching by member without a keyword for a guest
- Fix additional XFES index page would show even when XFES was not installed/active
- Fix error "Object of class XF\Mvc\Reply\View could not be converted to string" when a user is denied search tries to use search
- Fix "Push "View X by others" option being disabled would cause some user information to not be indexed, which had the implicit "rebuild search index" if this setting was then enabled.
...
- This fixed conversation search when using Conversation Improvements v2.4.x+
- Requires a re-index of at least conversations/conversation messages to re-add the missing information.
- For most sites, disabling the "Push "View X by others" check into XFES" option is not recommended
- Cleanup add-on description & readme file
- Update XFES dependent option descriptions to include if they require XFES
- Improve styling of 'no results' search result in an overlay
- Fix search result terms do not display when search results are in an overlay
- Fix custom styling triggering "Your changes have been saved." when clicking a member search link
- Improve how thread/tickets by others in a category without view-other permission are filtered out of search results when using XFES without ElasticSearch Essentials
- Add PermissionConstraint helper class, designed to simplify implementing XF Search handler's getTypePermissionConstraints function
- Add "Collect search DSL & debug statistics" option (Default off), designed as a developer tool and strongly not recommended for production usage.
- During upgrades, fix " Access to undeclared static property " error.
- Do not show the "Tags will be searched" tooltip as part of "Search titles only" in advanced search for content types which do not implement tagging
- Improve phrasing of custom search term on the advanced search page.
- Change the phrase 'search only x' to 'search x only' to match XenForo.
- Supports arbitrary phrases for 'search x only' by adding the phrase svSearchImprov_search_container.x where x is the content type. Ships with the current customizations:
- svSearchImprov_search_container.thread: "Search titles and first posts only"
- svSearchImprov_search_container.conversation: "Search titles and first...
- Fix viewing the index list could be blocked when elasticsearch is configured but inaccessible
- Support tag/username autocomplete using XFES add-ons todo prefix matching on autocomplete
Workaround XF2.2.13 does the search beforechecking it it can save it as a cached value, which can result in a query that is massively more complex than expected being sent to elasticsearch
- This issue practically doesn't occur with stock XFES, but with additional search addons such as ElasticSearch Essentials this can generate unexpected errors