Overview
This API allows you to create a field in Hawksearch dashboard and manage the field configurations.
Example use case: Create a Brand field that can be used as a facet filter.
Request: POST request to the API below:
Response: The response is an array of field objects, every field object being a series of key-value pairs. Description of the data is as follows:
No | Key | Description | Value Type |
---|---|---|---|
1 | FieldId | The unique identifier of the field (unique across the whole system) | Number |
2 | SyncGuid | Internal field | GUID |
3 | Name | Name unique to an engine (can be the same for one or more engines) | lowercase alphanumeric string with underscores allowed |
4 | FieldType | One of the below field configuration options: Field Values are NOT stemmed - keyword or facet (facet if there is a corresponding facet else keyword) | One of the 4 possible values - facet |
5 | Label | Display name of the field | Alphanumeric string |
6 | Type | Datatype of the field | One of the 3 possible values - String, Single, Boolean, Datetime, GeoPoint |
7 | Boost | Boost value set on the field | Number between 1 and 200, inclusive |
8 | FacetHandler | Internal handler associated with the field | Alphanumeric |
9 | IsPrimaryKey | Flag to set as primary field | Boolean |
10 | IsOutput | Flag to control presence in response | Boolean |
11 | IsShingle | Corresponds to Add phrases to "Did you Mean"? under the field settings on the dashboard | Boolean |
12 | IsBestFragment | Flag controls creating synopses for large textual content | Boolean |
13 | IsDictionary | Flag to include field for autocorrect suggestions | Boolean |
14 | IsSort | Flag to allow sorting on search results page | Boolean |
15 | IsPrefix | Flag to indicate if the field is a prefix type | Boolean |
16 | IsHidden | Flag to control query builder configuration for the field | Boolean |
17 | IsCompare | Flag to manage comparison display | Boolean |
18 | SortOrder | Sort order of the field | Numeric |
19 | PartialQuery | Query type for the field | None, Prefix or Wildcard |
20 | IsKeywordText | Indicates that the field values indexed ""as is"" AND are stemmed | Boolean |
21 | IsQuery | Flag to allow querying on the field | Boolean |
22 | IsQueryText | Flag to show query text value | Boolean |
23 | SkipCustom | Flag to control display in custom group | Boolean |
24 | StripHtml | Flag to remove html content | Boolean |
25 | MinNGramAnalyzer | Minimum value for ngram analyzer (for queryable fields) | Numeric, 2 to 15 inclusive |
26 | MaxNGramAnalyzer | Maximum value for ngram analyzer (for queryable fields) | Numeric, 2 to 15 inclusive |
27 | CoordinateType | Used for latitude and logitude | Alphanumeric |
28 | OmitNorms | Flag to enable/disable smaller document to score higher | Boolean |
29 | ItemMapping | Field mapping value | Fieldname |
30 | DefaultValue | Value to show when empty | Alphanumeric |
31 | UseForPrediction | Flag to indicate that field is used in Recs | Boolean |
32 | CopyTo | List of fields to copy values into (redundancy) | List of alphanumeric fieldnames |
33 | Analyzer | Corresponds to the drop down list of Analyzers to be chosen | Alphanumeric |
34 | DoNotStore | Flag to control storage (helps to increase performance by reducing index size) | Boolean |
35 | Tags | Engine-wide labels (avilable acros complete dashboard) | Comma separated alphanumeric string |
36 | Iterations | Query iterations | Array of numeric values |
37 | AnalyzerLanguage | Natural language choice for query analyzer | Alphanumeric |
38 | PreviewMapping | Available for API indexing enabled engines | Fieldname |
39 | OmitTfAndPos | Flag to omit term frequency | Boolean |
40 | CreateDate | Field creation date | Date string in MM-DD-YYYY format |
41 | ModifyDate | Field modification date | Date string in MM-DD-YYYY format |
Best Practices
REST URL: https://dev.hawksearch.net/api/v9/Field
Method: POST
Authentication: Basic (Engine API Key)
When creating a new field, you need to make sure that the following attributes are always sent in the request payload otherwise the request would be invalid.
2. Please make sure that the field ‘Name’ is unique and a field with the same name does not exist already. You can first get a list of all fields using ‘/api/v9/FieldInfo’ or get this particular field information using field name 'api/v9/Field?fieldName={fieldName}' before creating a new field
3. The ‘Fieldtype’ can only have one of the 4 possible values (refer to Best Practices section below):
facet
keyword
unindexed
text
Multiple fields can have the same ‘Label’ value as long as the Name is unique.
Boost has to be set to 1 when IsQuery=false
IsPrimaryKey should be always set to ‘false’ unless you want to mark that field as a Primary Key. Note that only one field can be a Primary key and it is suggested to NOT change it often as it might have a negative impact on site functionality. Please contact Hawksearch if you would like to change the Primary key.
IsOutput should be set to ‘true’ only if you need the field value in the search response. Please always set it to ‘false’ if not in use.
IsShingle corresponds to Add phrases to "Did you Mean"? under the field settings on the dashboard. It has to be set to false when IsQuery=false.
If IsQuery=true, then IsShingle can be set to true only for "Type": "string". You can not use it for types ‘Numeric’ or ‘Boolean’.
If IsQuery=true, then IsShingle can be set to true only for "FieldType": "facet", “keyword” and ”keywordtext”. You can not use it for field types ‘unindexed’, ‘text’.
{keyword, "Field values indexed ""as is"" AND are stemmed"} >> “IsKeywordText will be set to 1” ,
{keyword, "Field values are NOT stemmed"}>> “IsKeywordText will be set to 0”,
{text, "Field values are ONLY stemmed (search only)"},
{unindexed, "Stored only, not used for search nor facets"},
{facet, "Field values are NOT stemmed"}} >> The field type value changes to ‘facet’ from ‘keyword’ if you set up this field as a facet. For fields that will be used as facet, please set up field type as ‘facet’.Iterations can be skipped from the request but if IsQuery=true, IsShingle = true then we need to set the Iterations value by default to 1.
Type is the datatype of the field. One of the 3 possible values is String, Single, Boolean. If you set a field as IsQuery=true and IsShingle = true then you need to always pass the Type information in the request as IsShingle cannot be used for types ‘Numeric’ or ‘Boolean’.
SortOrder field is optional and can be passed if you would like to maintain a specifc order for all the field values. The value should always be numeric.