Relevance Tuning
Relevancy Tuning in Search
Relevance Tuning templates let you adjust relevance based on type of content or metadata using pre-made tuning templates OR templates you create and customize.
With Relevance Tuning, you can quickly and easily adjust how data is ranked with the click of a button using our pre-made templates. Or, create and label your own tuning presets for content that is unique to your organization. You can even preview your tuned results so you can make fast adjustments.
SearchBlox supports relevance tuning of search results through URL parameters in the search query. Relevance can be tuned with standard field boosting.
Standard Field Boosting
Standard Fields (title, description, URL, keywords, date recency, URL length and clicklog) can be boosted to tune the relevancy of search results
Parameter | Description | Default value | Range of values | Example |
---|---|---|---|---|
tune | Enables or disables relevance tuning | true | true or false | https://localhost:8443/rest/v2/api/search?public=true&query=time&tune=false |
Title(tune.0) | Weight used to increase relevance of document if search query appears in document title | 25 | 1 to 100 | https://localhost:8443/rest/v2/api/search?public=true&query=time&tune.0=50 |
Description(tune.1) | Weight used to increase relevance of document if search query appears in document description | 15 | 1 to 100 | https://localhost:8443/rest/v2/api/search?public=true&query=time&tune.1=50 |
Keywords(tune.2) | Weight used to increase relevance of document if search query appears in keywords meta field | 25 | 1 to 100 | https://localhost:8443/rest/v2/api/search?public=true&query=time&tune.2=50 |
Keywords in URL(tune.3) | Weight used to increase relevance of document if search query appears in document url | 10 | 1 to 100 | https://localhost:8443/rest/v2/api/search?public=true&query=time&tune.3=50 |
Last modified date(tune.4) | Documents within 180 days are ranked higher than older documents. This sets the time period (in days) after which the relevance of documents decreases based on the document last modified date | 1 | Number of Days You can give any value between 1 and 1000 | https://localhost:8443/rest/v2/api/search?public=true&query=time&tune.4=30 Number of days = 30 |
URL length(tune.5) | Shorter urls will be ranked higher than longer urls based on length | 1 | 1 to 100 | https://localhost:8443/rest/v2/api/search?public=true&query=time&tune.5=50 |
Click weight(tune.6) | More the number of clicks made to the result, more will be the relevancy | 5 | 1 to 100 | https://localhost:8443/rest/v2/api/search?public=true&query=time&tune.6=50 |
It is also possible to boost multiple parameters while boosting as in the following examples:
To boost description and boost documents lesser than 30 days:
https://localhost:8443/rest/v2/api/search?public=true&query=time&tune.1=50&tune.4=30
To boost keywords and URL:
https://localhost:8443/rest/v2/api/search?public=true&query=time&tune.2=50&tune.3=30
Similarly, different combinations of tuning can be used based on user requirement. To boost results which have been viewed by the users and boost title
https://localhost:8443/rest/v2/api/search?public=true&query=time&tune.6=50&tune.0=30
Custom Field Boosting
Custom field boosting can be used by the user to boost fields such as metadata, file properties and other custom fields that are indexed in SearchBlox.
Parameter | Description | Default value | Range of Values | Example |
---|---|---|---|---|
tune.field | Provides the ability to facet on any field | No | Any standard or custom field including term, number or date fields | &tune.field=size&t.size.factor=10&t.size.modifier=square |
tune.field.weight | Weight to be used to increase relevance of document if search query appears in document custom field. This is for text field | No | 1 to 100 | &tune.field=author&t.author.value=john&t.author.weight=100 |
tune.field.factor | This factor is applicable for numerical field. Please make sure to add the custom numerical field in your mapping.json. | No | 1 to 100 | &tune.field=size&t.size.factor=10&t.size.modifier=reciprocal |
tune.field.modifier | This factor is applicable for numerical fields and has to be provided with tune.field.factor | No | none - Do not apply any multiplier to the field value log - Take the logarithm of the field value log1p Add 1 to the field value and take the logarithm log2p - Add 2 to the field value and take the logarithm ln - Take the natural logarithm of the field value ln1p - Add 1 to the field value and take the natural logarithm ln2p - Add 2 to the field value and take the natural logarithm square - Square the field value (multiply it by itself) sqrt - Take the square root of the field value reciprocal - Reciprocate the field value, same as 1/x where x is the field’s value missing - Value used if the document doesn’t have that field. The modifier and factor are still applied to it as though it were read from the document. | To increase relevance larger documents tune.field=size&t.size.factor=10&t.size.modifier=square square - If square is provided as modifier greater the field value greater the relevance To reduce the relevance of larger documents &tune.field=size&t.size.factor=10&t.size.modifier=reciprocal reciprocal - If reciprocal is provided as modifier lower the field value greater the relevance |
For a numerical field the mapping should be as shown in mapping.json or any other relevant file in SearchBlox.
"numfield": {
"type": "double",
"store": true,
"index": false
},
Manual Rank (or mRank)
This feature can be used to manually rank specific documents on top of the search results page, irrespective of the relevancy mechanism supported by SearchBlox.
Adding rank requires additional sorting tweaks to be done in the preview window of relevance tuning to sort search parameters.
Search Level Boosting
Boosting can be done during Search by using ^ operator.
In the following example, software is given boost over test, so results with software will appear on top.
test software^100
In this example, the title field is given more boost over the keywords _field, so the results with the title _world will appear on top.
example, keywords:news title:world^500
Specific content types can be boosted by using the search query with the content type field.
example, library AND (contenttype:html OR *)
example, (library OR title:library) AND (contenttype:html OR *)
The search boosting query value can be passed through the filter param to avoid the user search term from being changed.
https://localhost:8443/rest/v2/api/search?query=library&filter=libraryAND(contenttype:htmlOR*)
https://localhost:8443/rest/v2/api/search?query=library&filter=(libraryORtitle:library)AND(contenttype:htmlOR*)
After making changes, please restart the build, reindex and then perform the search.
Disabling Relevancy tuning
Relevancy tuning can disabled provided based on the preceding section by providing &tune=false in the search servlet URL
example: https://localhost:8443/rest/v2/api/search?public=true&query=apple&tune=false
Updated 4 months ago