Web Search Configuration
Introduction
Each Web Search is based on an index, which needs to be built before-hand. The content of the search index can be configured in the index configuration which is built using a Export Template.
Each Web Search index is basically a Export Profile based on a search index configuration Export Template.
Tip
If you have any further question, how to configure Web Search, have a look to the HowTo page: Web Search Configuration How to in the HTML package we ship with the software as technical documnetation.
Export Template
Purpose
There is special purpose defined for the Web Search which provides automatic functionalities like adding a search indexing post step.
Post Step
Output Files
Index Configuration Module
Export Configuration File
Configuration JSON Schema
Entities and Fields
Top level entities are called rootEntities. There can be an array of rootEntities.
Key |
Type |
Mandatory (M) |
Description |
Example |
identifier |
String |
M |
Identifier of the entity which is based on ArticleType |
Product2G or Variant or Article |
parentEntityIdentifier |
String |
O |
Identifier of the entity which is based on ArticleType |
In 2PPD index, identifier=Article, parentEntityIdentifier=Product2G |
fields |
Array |
O |
Fields of the root entity |
|
subEntities |
Array |
O |
Sub-entities of the root entity |
Any sub-level entities of root-level entities are called subEntities.
Key |
Type |
Mandatory (M) |
Description |
Example |
identifier |
String |
M |
Identifier of the sub-entity |
Product2GLang |
fields |
Array |
O |
Fields of the sub-entity |
|
keyValue |
Object |
O |
Object where the data is dynamic key-value pairs. |
ArticleAttributes, where the Attribute Name and Attribute Value makes a key-value pair. |
Any entity generally contains fields.
Key |
Type |
Mandatory (M) |
Description |
Example |
identifier |
String |
M |
Identifier of the field |
SupplierAID, DescriptionShort |
dataType |
String |
M |
Data type of the field to be used in Elasticsearch |
text, keyword |
boostFactor |
Float |
O |
Improves scoring |
|
qualifications |
Array (String) |
M (applicable only inside subEntities) |
The logical key values need to be defined here. If logical keys are of enum type, use the enum code. |
For DescriptionShort (English), use "qualifications": [ |
searchProperties |
Object |
M |
Defines the different properties like facetable, searchable, sortable, etc. |
|
analyzers |
Array |
O |
If provided, will help to index data in different ways to improve search results and scoring. |
Sometimes sub-entity contains keyValue. E.g. ArticleAttributes
Key |
Type |
Mandatory (M) |
Description |
Example |
dataType |
String |
M |
Data type of the field to be used in Elasticsearch |
text, keyword |
boostFactor |
Float |
O |
Improves scoring |
|
searchProperties |
Object |
M |
Defines the different properties like facetable, searchable, sortable, etc. |
|
analyzers |
Array |
O |
If provided, will help to index data in different ways to improve search results and scoring. |
The properties present in searchProperties for fields or keyValue.
Key |
Type |
Description |
searchable |
Boolean |
|
sortable |
Boolean |
|
facetable |
Boolean |
|
facetordervalue |
Integer |
To improve search results and scoring, we can add analyzers for fields or keyValue.
Key |
Type |
Mandatory (M) |
Description |
Example |
name |
String |
M |
The name of the analyzer defined in the index settings. |
Language analyzers like english, german, french, etc |
dataType |
String |
O |
Data type of the field to be used in Elasticsearch. If not specified, the dataType of the encapsulating object will be used. |
text, keyword |
boostFactor |
Float |
O |
Improves scoring If not specified, the boostFactor of the encapsulating object will be used. |
Index Settings
Every Elasticsearch index can have its own settings like the analyzers that can be used by fields, how many replicas and shards should be created and maximal number of search results, etc.
Search Settings
These are advanced settings to tweak search process. It is recommended to keep this untouched.
Data Sources
We need to define the data-providers for the export template. Depending on the type of index, the data-providers can vary. The Web Search index data-provider is based on a catalog or an assortment of a catalog.
If you want to create a cross-catalog search index, i.e. a search index that contains items for multiple supplier catalogs, you can use the corresponding data-providers "Changed and new items (supplier catalogs)" and "Deleted items (supplier catalogs)". There are two alternatives to configure the data-providers, either you define a specific list of catalogs or you choose the option "Use all supplier catalogs". By doing it the second way, all items in new supplier catalogs will be automatically added to the search index.
Index Data Module
Export Data File
Modules and Sub-modules
Each operation on a root entity needs to have a module.
At the end of the module, a line break is mandatory.
Each sub-entity needs to be a sub-module with-in the module.
Depending on the logical key selection we can have multiple such sub-modules.
At the end of the sub-module, a line break should not be added.
Both module and sub-module should have export file.
Limitation
Note that the Index does currently not support the characteristics data type in the Product 360 data model. This means characteristic values can neither be used as searchable inputs nor to create facets to the search index.
Reconfiguring/updating an index
Any changes or updates to the structure of the index, requires one to drop the existing index from elasticsearch, setup a new export profile and run the export for creating a new index. M ake sure not to execute the export with the same profile twice but set it up initially as scheduled and not touch it manually again. In case, a manual re-trigger is required the same can be done through process overview again and not directly on export profile as this may fire another instance causing a mix up in index generation.
Configuring the language of index
Once an index is created using a "language". This language can't be changed anymore for the index.
It is not recommended to create an index with multiple languages. Each index should work with just 1 language for it's lifetime.
Deleting an index
In order to delete an index, simply delete the full-text search profile which was used to create the corresponding index. Follow the following steps in order to delete a full-text search profile.
Right click on the full-text search profile
Select Manage export profile...
Select the profile from the given list
Press Delete and select Ok.