params
object. Optional fields are as follows:
Field Name | Description | Example | |
---|---|---|---|
id | The x-fusion-query-id generated by the query-pipeline used for associating click signals with queries in experiments and aggregation jobs. | TwWCn3Dz | |
type | Signal type | response | |
response_type | Used by Insights to determine if this query had results or was empty | `results | empty` |
session | User session ID; the search app should pass the session ID in the query params for a query | UUID | |
query | The actual query string sent to Solr from Fusion | ipad | |
query_orig_s | The incoming query from the search app before it is enriched by the query pipeline | ipad | |
query_id | A hash generated from the session, query, and filters fields; used as a rollup key in Insights to group activity by a specific | SHA1 hash | |
filters_s | Filter queries sent to Solr; the Fusion SearchLogger component combines multiple fq parameters into a single value delimited by ” $ “ | {!tag=format}format:(vhs) $ {!tag=type}type:(movie) | |
filter | Reformatted filter queries for use by App Insights | field1/value | |
user_id | User ID; the search app should pass the user_id in the query params | admin | |
doc_ids_s | A comma-delimited list of document IDs returned for the page of results; this field is used by Fusion Spark jobs, such as the ground truth job, to perform click/skip analysis | 123,456,789 | |
pipeline_id | Fusion query pipeline that processed this query | _system | |
collection | Fusion collection | my_collection | |
qtime | Query time from Solr, in milliseconds | 10 | |
rows | Number of rows requested for this query | 10 | |
hits | Total number of documents matching the query | 10000 | |
totaltime | Total processing time of this query in milliseconds, includes Solr qtime and Fusion query processing time | 15 | |
timestamp_tdt | Timestamp when the query request was received by Fusion | 2018-02-15T18:17:42.560Z | |
res_offset | Offset of results; this field is used by experiment metrics to calculate MRR | 0 | |
res_pos | Position of the clicked result within the list of results | 3 | |
params.* | Any other query param sent from the search app to Fusion that was not already mapped to a declared field | params.defType_s=edismax |
fusion_query_id
.
fusion_query_id
field pulled from the query response header x-fusion-query-id
. In addition, click signals should include the following fields:
params
object. Optional fields are as follows:
type
parameter can also take arbitrary values for custom signal types. For example, you can create special signals for purchase events, cart addition/subtraction events, “favorite” or “like” events, customer service events, and so on.
To collect custom signals, configure your front-end search application to send signals to Fusion using a custom value for the type
field. Custom signals should also include the fields described below in order to get the best results from aggregation and recommendation jobs.
To use custom signals in recommendations, you must add them to the value of the signalTypeWeights
parameter in the configuration for the _user_item_preferences_aggregation
job and the _user_query_history_aggregation
job.
Custom signals can be analyzed in App Insights just like pre-defined signal types.
params.user_id
.
The jobs that aggregate signals and generate recommendations work best when all of the following fields are present in your signals:
Field Name | Example Value | Description |
---|---|---|
count_i | 1 | Number of times an interaction event occurred with this item |
doc_id | NMDDV | Product ID or Item ID |
id | 68f66808-6bfc-4d73-95f7-8a558529160b | The signal ID. If no ID is supplied, one will be automatically generated. |
query | xwearabletech | A query string from the user |
session_id | 91aa66d11af44b6c90ccef44d055cf9a | Id for session in which user generated the signal |
type | quick_view_click | Type of session the user used to interact with the platform |
user_id | 11506893 | ID of user during the session |
timestamp_tdt | 2018-11-20T17:58:57.650Z | Time when signal was generated |
Single Value Suffix | Multivalued Sufix | Type |
---|---|---|
*_b | *_bs | boolean |
*_d | *_ds | double |
*_dt | *_dts | date |
*_f | *_fs | float |
*_i | *_ii | int |
*_l | *_ls | long |
*_s | *_ss | string |
*_t | *_ts | text |
Field name | Query | Example number of documents |
---|---|---|
ALL | *:* | 33,477,919 |
count_i | count_i:[* TO *] | 11,101,165 |
doc_id | doc_id:[* TO *] | 23,216,297 |
id | id:[* TO *] | 33,477,919 |
query | query:[* TO *] | 19,724,598 |
session_id | session_id:[* TO *] | 11,101,165 |
type | type:[* TO *] | 33,477,919 |
user_id | user_id:[* TO *] | 26,117,399 |
timestamp_tdt | timestamp_tdt:[* TO *] | 26,117,399 |
query_id
fieldquery_id
field, which App Insights uses to create group-by-query reports like the one shown below:
query_id
field should not be confused with the fusion_query_id
, which is a unique ID for each query processed by a Fusion query pipeline, or with query_s
which is the query string.session
, query
, and filter
fields, then saves it into the query_id
field.
The filter
field can either be passed in by the search app,
or computed by the SignalFormatterStage (the first stage in the _signals_ingest
pipeline) using the raw filter queries. For instance, on a response signal that is generated by a query pipeline, the following fq
query params get translated into the multi-valued filter
field:
filters_s
field (created by the SearchLogger component):filter
field:filter
field to generate various reports.