COLLECTION_NAME_signals_aggr
collection to get boosts for the main query based on aggregated click data./signals
endpoint.COLLECTION_NAME_signals
collection as a response signal using the _signals_ingest
pipeline. Therefore, the response signal captures all results from Fusion as it related to the original query.COLLECTION_NAME_logs
collection. Query activity is no longer indexed into the _logs
collection. All response signals use the fusion_query_id
(see below) as the unique document ID in Solr._signals_ingest
pipeline behind the scenes).fusion_query_id
in the params
object of the raw click signal. The fusion_query_id
field is returned in the query response (from step 1) in a response header named x-fusion-query-id
. This allows Fusion to associate a click signal with the response signal generated in step 4. The fusion_query_id
is also used by Fusion to associate click signals with experiments. For experiments to work, each click signal must contain the corresponding fusion_query_id
that produced the document/item that was clicked._signals_ingest
pipeline enriches signals before indexing into the COLLECTION_NAME_signals
collection.has_clicks
flag to “true” on request signals when the first click signal is encountered for a given request using the Update Related Document index stage.COLLECTION_NAME_signals
collection through a Fusion query pipeline to generate query analytics reports from raw signals.doc_id
+ filters group.COLLECTION_NAME_signals_aggr
collection to generate boosts on queries to the main collection (step 2 above).COLLECTION_NAME_signals_aggr
collection to build a collaborative filtering-based recommender model._signals_ingest
unless you explicitly specify a different index pipeline.
_signals_ingest
index pipeline has several stages:
has_clicks
flag stagehas_clicks
flag stage is an instance of the Update Related Document stage that updates the has_clicks
flag to “true” on an existing request signal after the first click signal is processed for the request.has_clicks
flag stage works as follows:
type==click
)request_id_s
, which gets set by the Format Signals stage using a distributed cache of recently processed request signals.request_id_s
field is set, then send a real-time GET
query to Solr to find a request signal with ID equal to the value of the request_id_s
field on the click signal. To avoid re-updating request signals, the RTG query also filters on has_clicks==false
, which avoids duplicate atomic updates on the same document in Solr. Real-time GET
is used to avoid timing issues between a request signal being sent to Solr and when it gets committed. This prevents missing updates when clicks occur soon after the initial request signal is sent by the search app.request_id_s
field set, then do a normal Solr lookup for the request signal using: +query_id:"${query_id}" +type:request +has_clicks:false
. A click signal may not have a request_id_s
if there is a cache miss in the distributed cache used by the Format Signals stage.query_id
. This is because the query_id
is based on session
+ query
+ filter
, so if a user sends the same query
+ filter
during the same session, there will be multiple request signals with the same query_id
value. Thus, the stage sorts to get the latest request signal to update.has_clicks
field to true and performs an atomic update in Solr.