This add-on plugin for Participants Database adds two powerful, fully configurable multiple-field search capabilities to your database application. These two search modes can be used together or separately to give your users the best search experience.
Combo Search is a single text input that searches through multiple fields in the database to find a match. It can find words or phrases, look for exact matches or find a string within the data. Which fields it searches on is fully configurable.
The built-in “autosuggest” feature begins providing user feedback as soon as typing begins, drawing possible words and phrases from the data. This ensures that users can find what they are looking for quickly and intuitively.
Multi-Search lets you show any number of search input controls. Each control corresponds to one field, and the search control type is based on the type of field that it searches on. For instance of the data is a dropdown field, the search control for that field could be a dropdown (there will be several choices for how it is presented) where the user may select their search term. Text fields are searched on with text inputs, radio buttons, and checkboxes are searched using an appropriate control type, which is confgurable for each field.
This is best for a “drill down” type of search where there are a number of different criteria used to find a result. It gives users an easy-to-understand interface for complex search tasks.
These are several search modes that can be used to tailor the results to fit your specific application.
There is a global “filter mode” setting that affects how all the search controls work. If filter mode is on, all of the search terms or criteria need to match for the record to show in the result. If filter mode is off, then if any of the terms or criteria are matched, the record will show in the result.
The Combo search has additional modes: any, all and phrase. They give you additional control over how strictly the search results are matched when there are multiple search terms. This mode can be set by the user, or as a plugin setting.
Whole Word Match Mode prevents matches with a portion of a word. For instance, when enabled, the search term “hot” would only match the word hot and not a word such as hotel.
In Combo Search, there is support for wildcards and quoted phrases, too. Wildcards can be used to find portions of words, or words that start with a certain letter. The asterisk stands for any string of letters, so searching for A* will match all words beginning with the letter A.
Wildcards can’t be used if “Whole Word Match” is enabled.
If words are quoted within a search, those words will be searched for as a phrase.
The Combo Multisearch Plugin offers two main search control types: a single text input (like a search engine) or a set of selectors/checkboxes/text fields that provide a search term for each field. Both search types may be used, but in most cases, you’ll be using one or the other.
Setting up the Combination Search
Combo Search provides a single-input search that will look in multiple fields for a match. Use this search type in situations where a simple easy-to-use interface is desired to search the database.
To set up the Combo Search, you’ll need the names of all the fields you want searched with the user’s input. Type the names as a comma-separated list into the “Combination Search Fields” setting. To disable the combo search, leave the setting blank. The “label” and “placeholder” settings give you two ways to prompt the user. The “label” is shown alongside the text input, and remains visible when the user types in their search. The “placeholder” is shown inside the text input, and disappears when the user begins to type in a search. A placeholder is good when you don’t need to explain much and want a clean, simple interface. The label is good for situations where you want to explain a little bit what the search is for. You can use either, neither, or both if you want.
Combo Search Modifiers
The “combo search modifiers” are a set of radio buttons to allow the user to set the type of search desired: “any,” “all,” or “phrase.” When enabled, these radio buttons will be shown next to the combo search input. There is a default search type that will be initially selected, and this is also the search mode that will be used if the combo search modifiers are not shown.
“Autocomplete” is also known as “autosuggest” and provides the user with a list of suitable search terms. The list of suggested search terms is shown as a pop-up window when the user begins typing, and the list is pared down as the user types in more letters. The list of autosuggest words is drawn from the database, so it can reliably guide the user to search terms that will yield results. The fields that the autocomplete terms are drawn from is defined in the “Combo Search Autocomplete Fields” setting. It is a list of field names like the “combination search fields” setting. This means that the combo search can search on fields that don’t contribute to the autosuggest. This is helpful in cases where some of the fields searched contain blocks of text, which could add a lot of useless terms to the autosuggest list.
Configuring the Multi Search
Multi Search provides a comprehensive interface for searching on multiple fields using a separate input for each field. This is best for situations where a precise, complex search is needed (such as a technical database) or in situations where you want to show the viewer what kind of information they can search by (for example, a services directory).
Starting with version 2.0, the multisearch fields are defined in a special interface under the “Multi Search Fields” tab in the plugin’s settings. In this new interface, each field in the multisearch can be customized in several different ways, changing how it looks, how the user may interact with it, and how it finds matches. Which options are available to a field depends on the type of field it is as defined in Participants Database.
If you already had Combo Multisearch set up and are updating from an older version, your fields will still be configured as before, only now you can fine-tune how each field works.
On this page, you configure which fields will appear in the multisearch and in what order. The display shows a list of all the fields configured for the Multi Search so you can edit the parameters of each one. You can add as many fields here as you want, you can also also delete and re-order them.
Each field in the list of fields has its own parameters where you can change how it is presented or how it works. There are several parameters, and which ones are available to each field depends on the field type. Here is a description of the parameters:
Label – This defaults to the normal field title, but if you want to give it a different label in the search interface, you can do that here.
Help Text – defaults to the field’s help text, but you can choose a different help text for the search interface.
Attributes – allows the addition of HTML element attributes, such as the “required” attribute to selectively make fields required in the search interface.
Input Type – depending on the original field type, there will be several different ways the field can be shown in the search interface.
Include Label in Result Summary – when checked, the field’s label will be shown along with the searched-for value in the search result summary.
Database Values in Selector – for any kind of selector input type, instead of showing the configured field options, the options shown in the control will be drawn from the database.
Show “Any” Option – for selector input types, enabling ths shows an option that will allow for any value in the fields: this is essentially a “reset” for the selector, removing it from the search.
“Any” Option Label – when the “any” option is shown, this is how it will be labeled. You can leave it blank for a blank option.
Multiselect “Or” Mode – (only for multiselect input types) if this is checked, the search result can match any of the values selected, instead of needing to match all of them when using “filter” mode. This setting makes no difference when not using filter mode because the values will be treated as an “or” in that case anyway.
Multi Search Field Input Type
Some field types will have several options available for the “Input Type” selected in the Multi Search Fields interface. A text field can be shown as a text input (of course) but also as a dropdown selector that shows a list of values taken from the database entries. Dropdown fields can be shown as a dropdown or as a multiselect, giving the user the ability to select several possible matches for that field.
Determining Which Multi Search Fields are Shown
Normally, a list shortcode configured to show the Combo Multisearch control will show all the fields you have configured in the Multi Search Fields interface. It is possible to determine on a per-shortcode basis which fields will be shown in the interface, as explained in the “Showing the Search Control” section. If you want to do this, you must configure all the fields you will show in all shortcodes, and then use the “search_fields” attribute in the shortcode to determine which of the configured fields to show in that particular display.
Filter Search Mode
The Combo Multisearch has two general modes of operation: Filter Mode on or off. With filter mode “on,” all chosen search values must match the record’s values for it to be included in a search result. If filter mode is “off,” a record will be included in the results if any of the provided search terms matches the record’s values.
When filter mode is on, any multi search fields that are configured with the “multiselect or” option will only require that one of the selected values in that field is a match. With “multiselect or” deselected, all the options selected for that field in the search must match.
Each search type, combo or multi, has a “Whole Word Match Only” switch so that text searches will only match a complete word in the search, not portions of a word. For multi-search controls, this only affects text inputs where the user types in the search term.
Returning to the Search Results
Under the General settings tab is an option to enable restoring the previous search when returning to the search page. This is convenient for users who need to navigate away from the search page and wish to return to the same page of results. If this is unchecked, the search page will be reset every time it is loaded.
Showing the Combo Multi-Search Control
The Combo Multisearch Add-On provides its search capabilities through the use of a special template. There is a template for the list display and for the stand-alone search display. Once the plugin settings are defined, the template must be called in the shortcode like this:
[pdb_list template=multisearch ]
The plugin now also includes a table-less responsive template for the list multisearch shortcode:
It is not possible to determine which fields are included in the combo search in the shortcode due to search optimization.
Setting Up a Remote Search
If you need to have the search control in a different location then where the results are displayed, you can do that with the [pdb_search] shortcode. You need to use the “target_page” attribute to tell the search shortcode where the results are to be displayed. The [pdb_list] shortcode is used to display the results. (Check this page for more on using the search shortcode…) For example, if your results are displayed on a page named “listings” then your search control shortcode will be like this: [pdb_search template=multisearch target_page=listings]. That shortcode can be placed anywhere. If you want to put it into a sidebar widget, you’ll need a plugin that will allow a shortcode in a widget. Then, on the “listings” page, put [pdb_list]. There is no need to set the template to multisearch unless you want another search control to appear at the top of the results.
In cases where the [pdb_list] shortcode is on a page with other Participants Database shortcodes, you may need to set the “target_instance” attribute to target the specific list shortcode where you want the results to appear. To find the target instance value, you must inspect the HTML. At the top of the list display, you will see a classname in the wrapper such as “pdb-instance-2” That means the list is instance 2, and you would need to put that value as the target instance in the search control shortcode, like this: [pdb_search template=multisearch target_page=listings target_instance=2].
Product-specific technical support can be found here: