The Super Search module is designed to greatly improve the performance of your average EE search or blog page. It can be used as both a search engine and as a replacement for the weblog:entries tag.
The architecture of the module borrows from Google’s model of constructing search queries. Anything that you might want to query for, keywords, weblogs, categories, statuses, custom fields, date ranges, custom field numeric ranges, etc. can be loaded into a single URI segment by using the Super Search syntax. This makes pages highly cachable, shareable, flexible and versatile. Values can of course be hardcoded using template parameters. But if you choose, you can also load all of your params into a single query string and provide that as a param. Forms can be created freely by you to submit queries to a results page and Super Search will translate the contents of the POST. Everything resolves itself into the standardized Google-like search string. So if you want, you can assemble queries on the fly using Javascript in your page, send that to Super Search and load it via AJAX into your page.
The primary reason it was developed was out of a desire to serve pages from EE as fast as possible. There are several levels of caching included which further improve performance. In our testing so far, searching for the letter ‘a’ across a DB with 50,000 unique entries, Super Search can return and parse batches of 50 entries on a simple shared server in under .25 seconds. These load times are dependent on Super Search caching and will vary of course, but you should be able to greatly improve your page performance.
Super Search supports relevance based searching which has been a need in EE for some time now. Most clients want to execute a search quickly and then see results sorted by some model of relevance. Super Search makes this available.
Try it today! 30 day money back guarantee!
If Super Search does not meet your expectations, or is not right for you, just let us know and we’ll give you a full refund within 30 days of purchase.
NOTE: This Add-On requires ExpressionEngine 1.6.8+ or ExpressionEngine 2.0.+, PHP 5+, MySQL 4.1+, the Solspace Bridge expansion (included), and the jQuery for the CP extension (if using EE 1.x).
Upgraded module to use Solspace Bridge 1.0 with CodeIgniter, therefore allowing compatibility with EE 2.x.
Added support for date formatting on variables for "date-from" and "date-to" searching. {super_search_date-to format="%Y-%m-%d %h:%i"}.
Added support for inclusive keyword and custom field searching. Ex: "cherry&&pie" will find results that contain BOTH "cherry" and "pie".
Added ability to apply custom ordering to results where the order is arbitrary. Example is a blog with a custom field called 'grade'. Grades can be A+, A, A-, B+, etc. Supply this format in the URI: search&order=grade+custom+'A+,A,A-,B+,B,B-,C+,C,C-' OR search&order=grade+custom+%22A+,A,A-,B+,B,B-,C+,C,C-%22 OR use this in the "order" parameter: order="grade+custom+'A+,A,A-,B+,B,B-,C+,C,C-'". Remember to put quotes around the string that controls the order.
Added support for {path}, {permalink} and {url_title_path} variables for Results tag in Performance ON mode.
Added support for conditionals on URI searches for channel shortnames. Ex: {if super_search_channel_article}Article{/if} or {if super_search_channel_not_articles}We searched for entries not belonging to "Articles" channel{/if}.
Added the dynamic="off" parameter to Super Search tags to ignore POST and URI arguments.
Added support for {if previous_page} and {if next_page} conditionals in the Results tag.
Added the ignore_field="some_field|some_other_field" parameter to Results tag. In the rare circumstance you need to display submitted value data, but not have Super Search perform a search on it, you would use this feature.
Modified the "excerpt" field to match EE's excerpt field behaviour from the Search module in Performance mode.
Modified the phrase identifier to only look at double quotes and no longer single quotes, to provide better support for keywords with apostrophes.
Modified the {relevance_count} variable to also work in Performance OFF mode.
Fixed a bug where the use of SLASH as a substitution for / in URL searches was not working in POST searches.
Fixed a bug where searching on Gypsy fields that belonged to a field group that was not assigned to any blog did no work.
Fixed a bug where if you indicated the relevance parameter in Results tag but you don't send a keyword through the search, you would get PHP errors about keywords.
Fixed a bug where when performing a POST search on categories and using "category_1&&category_2", it would change to include a ";" at the end of the categories in the URI string.
Fixed a bug where where category conditionals would NOT evaluate properly in a Results template unless the variable itself was specified.
Fixed a bug where using a status other than OPEN in the URI would cause the Results tag to display no results in Performance OFF mode.
Fixed a bug where specifying the "num" parameter in the URI or POST search would NOT override the "num" template parameter.
Version 1.1.0 Beta 2 (February 2, 2010)
Added a safeguard to prevent empty arrays from being returned for the per field weblog ID test in $SQL.
Fixed a bug where if an EE custom field group had searchable fields in it, but was not assigned to any weblogs, MySQL errors would be triggered.
Fixed a bug where Entry dates and custom date fields were not parsing in performance ON mode.
Fixed a bug where the 'date-from' and 'date-to' variables would not parse in a Results page.
Fixed a bug when you're on one MSM site and are pulling content from a different MSM site, custom field searching would not work correctly.
Fixed a bug where Preferences in the CP were not updating.
Version 1.1.0 Beta 1 (January 26, 2010)
Added search and display support for Gypsy, standard FieldFrame fields and Playa fields.
Added a CP preference to enable/disable Keyword searching on Playa Relationship fields.
Added ability to search on entry title's much like a custom field.
Added ability to search on native EE relationship fields.
Added the include_entry_ids="" parameter to force display of specific weblog entry ID's.
Added support for Pages module {page_url} and {page_uri} variables in Performance mode.
Added an indicator to the relevance="title=10+summary=5+count_words_within_words" parameter to allow relevance counting of words within words.
Added {relevance_count} variable, which shows the total number of relevance points awarded to a given weblog entry returned in a search.
Fixed a bug where the Excerpt field could still trigger an "undefined index" error.
Fixed a bug where multiple Super_Search:Results calls in a template were returning one another's results.
Fixed a bug where the _highlight_keywords() method was not always working in all instances.
Fixed a bug where the {homepage} variable would not parse in performance mode.
Fixed a bug where the 'num' URI param was not working in performance ON or OFF mode.
Fixed a bug where inclusive category searching would not work through POST form searches.
Fixed a bug where category variables were not parsing properly in the Search method.
Version 1.0.0 Beta 12 (December 16, 2009)
Modified Super Search to check to see if the custom weblog field designated to the Excerpt field per weblog actually exists.
Fixed a bug where custom fields were being pulled in for all MSM sites and causing errors with MySQL statements.
Fixed a bug where {super_search_channel} was not available for parsing in Search().
Fixed a bug that would display a MySQL error if no custom fields are searchable.
Fixed a bug where pagination would not work in performance off mode when searching for short strings of less than 3 chars.
Fixed a bug where date searching would sometimes not show all valid results.
Fixed a bug where date-to was not assuming the absolute last possible hour, minute and second within the specified time range.
Version 1.0.0 Beta 11 (November 30, 2009)
Added standard EE syntax parsing to _prep_keywords so that people can pass a param with "|" or "not" and achieve expected traditional EE behavior.
Added {excerpt} variable to Results loop with performance mode "off".
Added support for searching for keywords with the forward slash "/" character in the term.
Added the allow_repeats="no" parameter, which lets you have multiple Super Search calls in a session and each successive call will exclude previously found entries from it's query so that all entries found in a session are unique.
Added the paginate_base="search/results" parameter, which is available for use in the event you're doing something really complex with Super Search, and you're having problems with Super Search determining the actual base URL of the template group and template in the URI.
Complete overhaul of core search methodology to support multiple instances of Super Search in a given page when used as a weblog:entries replacement.
Eliminated do_search_wt() since the order param can really screw things up on account of we allow ordering by custom fields.
Removed heaviest usage of session cache since it was preventing proper function if you called Super Search twice in one session with diff params. All successive calls after the first would inherit from the first params.
Modified caching functionality to correct a bug with 0 refresh intervals.
Fixed a bug with Super_Search:Search where a PHP error was thrown.
Fixed a bug where syntax with Statuses was not working correctly.
Fixed a bug where the Save_Search_Form function would output a MySQL error if a duplicate search name of "Search" was entered.
Fixed a bug where the highlight_keywords="" parameter would only work in Performance mode.
Version 1.0.0 Beta 10 (November 12, 2009)
Initial release.
Installation
This add-on uses the Solspace Bridge Expansion software, which allows you to install a single set of files for both ExpressionEngine 1.x and ExpressionEngine 2.x versions. After downloading the latest version of the add-on, unzip the download file and follow these instructions…
ExpressionEngine 2.x Installation Instructions
1. Copy Add-on Files
This add-on requires that you use the Solspace Bridge Expansion software with ExpressionEngine. It will be included with your download in a separate folder.
Copy the bridge folder into your ./system/expressionengine/third_party/ directory.
Copy the folder named super_search into your ./system/expressionengine/third_party/ directory.
If the ./themes/solspace_themes/ directory DOES NOT exist, copy the solspace_themes folder in the download into your ./themes/ directory.
If the ./themes/solspace_themes/ directory DOES exist, copy all of the contents inside of the solspace_themes folder in the download into your ./themes/solspace_themes/ directory.
NOTE: Installations on ExpressionEngine 2.x DO NOT USE the ext.super_search_extension.php extension file.
2. Installing the Add-On
Go to the Modules tab in the ExpressionEngine Control Panel, find Super Search in the list, and click Install.
This add-on requires that you use the Solspace Bridge Expansion software with ExpressionEngine. It will be included with your download in a separate folder.
Copy the bridge folder into your ./system/ directory.
Copy the folder named super_search into your ./system/modules/ directory.
Copy the extension file named ext.super_search_extension.php into your ./system/extensions/ directory.
If the ./themes/solspace_themes/ directory DOES NOT exist, copy the solspace_themes folder in the download into your ./themes/ directory.
If the ./themes/solspace_themes/ directory DOES exist, copy all of the contents inside of the solspace_themes folder in the download into your ./themes/solspace_themes/ directory.
2. Installing the Add-On
Go to the Modules tab in the ExpressionEngine Control Panel, find Super Search in the list, and click Install.
Go to the Extensions Manager area in the ExpressionEngine Control Panel, and make sure the jQuery for the CP extension exists and is enabled.
After downloading the latest version of the add-on, unzip the download file and follow these instructions...
ExpressionEngine 2.x Updating Instructions
1. Upgrading from Super Search 1.1.x to Super Search 1.2.x (if applicable)
If you're planning to upgrade BOTH ExpressionEngine AND Super Search to ExpressionEngine 2.x, we recommend that you upgrade Super Search first. Super Search uses the Solspace Bridge Expansion software which allows a single set of files for an addon to work with both ExpressionEngine 1.x and ExpressionEngine 2.x, therefore making it more seamless to upgrade your Solspace addons in the process of upgrading your ExpressionEngine 1.x site to ExpressionEngine 2.x.
This add-on requires that you use the Solspace Bridge Expansion software with ExpressionEngine. It will be included with your download in a separate folder.
Copy the bridge folder into your ./system/expressionengine/third_party/ directory.
Copy the folder named super_search into your ./system/expressionengine/third_party/ directory.
Copy all of the contents inside of the solspace_themes folder in the download into your ./themes/solspace_themes/ directory.
NOTE: Installations/Upgrades on ExpressionEngine 2.x DO NOT USE the ext.super_search_extension.php extension file.
3. Updating the Add-On
Go to the Modules tab in the ExpressionEngine Control Panel and click the link for Super Search
Click the Update link now displayed in the module's control panel.
This add-on requires that you use the Solspace Bridge Expansion software with ExpressionEngine. It will be included with your download in a separate folder.
Copy the bridge folder into your ./system/ directory.
Copy the folder named super_search into your ./system/modules/ directory.
Copy the extension file named ext.super_search_extension.php into your ./system/extensions/ directory.
Copy all of the contents inside of the solspace_themes folder in the download into your ./themes/solspace_themes/ directory.
2. Updating the Add-On
Go to the Modules tab in the ExpressionEngine Control Panel and click the link for Super Search
Click the Update link now displayed in the module's control panel.