The search is the heart of Makaira and offers a variety of setting options:
Where to search?
The searched fields can be configured.
Configure searched fields
The created search fields define which fields on the imported data will be searched in case of a search query for the search term. Without further configuration, the following fields - if available in the data set - are used by Makaira for the search by default:
OXTITLE- the title of the product, category or manufacturer
OXSHORTDESC- the brief description of the article
OXSEARCHKEYS- additional search words, which are maintained at the article
The importance of the search field can be readjusted with the boost factor. The higher the value set, the higher the weighting of the search field and thus the influence on the order of the search results.
- Field - selection of the field to search in.
- Active - activate/deactivate the field
- Boost factor - readjust the meaning of the field
It should be noted that search fields with a large amount of text information in conjunction with activated fuzzy search significantly expand the result set of a search.
How to search?
Synonyms and antonyms
Synonyms help the search to understand connections of words and thus change the result set of the search. In this way, documents can be found in which the original search term does not appear at all, thus providing the user with more relevant results in the best case. When creating synonyms, it should be noted that synonyms are subject to the same analysis process as all other text fields in the search or index creation. This includes the lower case of all terms, the substitution of umlauts and letters from other languages and the tracing back to the root of the word.
A synonym entry like:
Zug, zug, Züge, züge has no effect on the search, because all words are traced back to the word
An example of a true synonym entry is:
Now, for each search query that contains the word
blau, an additional entry is created with the word
blue. Since the two words are now equivalent, an entry for
blue is also created for search queries that contain the word
blau. The creation of synonyms should be done with care, because it can easily lead to an unintended search blur.
The two synonym entries
eis, ice and
zug, ice can be useful search enhancements separately. However, if you have created both synonyms in the synonym definitions, users searching for
Zügen will now also see different types of ice cream.
The configuration of a synonym is done by means of the following parameters:
- Name - is used for identification within Makaira and overview.
- Language - determines for which language index the synonyms are used
- Synonyms - list of terms used as synonyms for each other during the search, separated by commas.
As mentioned above, umlauts or letters from other alphabets are traced back to the base letter when creating the index (e.g. ü->u or ø->o). If you want to create a synonym for a word which contains such a letter, you have to consider this when defining the synonym.
fruh after the analysis. A correct synonym could therefore be
Associations can be used when non-equivalent terms are to be linked. For example, blazer is a special jacket, but not every jacket is a blazer. A synonym entry
jacket , blazer would therefore result in a search for jackets also showing blazer. Additionally, for the much more specific searches for blazers, all jackets will then be found. To increase the search accuracy, it is advisable to use an associations that assigns blazers to jackets, but not vice versa.
The definition of associations is done in Makaira in the synonym configuration by using a different syntax: If you always want to search for blazer instead of jacket you have to use
jacket => blazer. If both jacket and blazer are to be searched for with the term jacket,
jacket => blazer,jacket. It is also possible to assign several terms to one another, such as:
anorak, jacket => anorak .
The use of associations is often preferable to the use of synonyms, because a greater search sharpness can be achieved. This is especially true for synonyms that consist of several terms in order to counteract undesired effects (see note).
Antonyms can be used to exclude unwanted terms from the result set of a search. When creating antonyms, it should be noted, just as with synonyms, that they are subject to the analysis process of the search. Antonyms are sent along with a search query as words to be excluded and are not in the index. The creation of antonyms should be done with care. For example, if the antonym entry:
zug, ice is created in order not to display an ICE (Intercity Express) when searching for the Swiss city
Zug, articles containing the word
Zug will now also be excluded when searching for ICE.
The configuration of an antonym is done by means of the following parameters:
- Name - is used for identification within Makaira and overview.
- Language - defines for which language index the antonyms are used
- Antonyms - list of terms which are used as antonyms to each other during the search, separated with commas
Incorrectly configured antonyms can distort the search results. For all articles that are to be found, it must be ensured that the antonyms do not occur in any of the fields to be searched. Word decompositions (more precise search concepts) must also be taken into account. For example,
Regenjacke(rain jacket) is decomposed into
Jacke. All antonyms with
Jacke thus also refer to
What to search?
Search results of additional data
By default, only the articles (Products) of the store are searched. If this option is enabled, additional data areas will be used for the search.
Possible additional data areas are:
Configuration of a searchable link:
- Title - used for identification within Makaira and overview.
- URL - destination address of the searchable link
- External link - indicator whether the link leads to another page of the store or to an external source
- Keywords - list of terms for which the searchable link should be displayed during the search, separated with spaces
To load additional search suggestions for a search, comparable to Google's "Did you mean ..." feature, a field can be specified here from which corresponding term suggestions are loaded.
Makaira search suggestions are another way to support the customer in his search. Parallel to search results in products, manufacturers, categories and links, search suggestions are generated. An exemplary implementation can be found in our demoshop (https://demo.makaira.io/oxid6/):
Under Search->Search configuration->What is searched->Term suggestion
a field must be defined, from which search suggestions are determined. The field must be a comma-separated list, consisting of relevant search terms such as the OXSEARCHKEYS. Afterwards, a new index must be created, which will populate the Makaira search suggestion field.
- Each search term can be found backwards by auto-completion. For example, if "jeans" is a term in the search suggestions, it will already be found at "j".
- If the search term consists of 2 or more words, these can be found in any order. E.g. "tight jeans" is also suggested when searching for "j".
- If the search term consists of a compound word, the term will also be displayed when searching for a partial word. E.g. "hip jeans" will also be displayed when searching for jeans.
Search suggestions take over the search parameters fuzzy and number of search results. In principle, search suggestions are returned in lower case.
Error tolerant search
Enabling the error-tolerant search allows that even search terms that do not appear exactly in the search fields qualify the article for the result set.
As a basis for the error tolerant search, the Levenshtein distance of the terms occurring in the search fields to the search term is calculated. This distance indicates how many changes are needed to transform a word into another word.
In Makaira, the limit to qualify a term for the result set is a distance of 2. This allows to compensate for simple spelling mistakes and misspellings.
The calculation of the distance in case of multiple search terms takes place on a per-word basis.