Product Selector

Fusion 5.9
    Fusion 5.9

    Signals API

    Table of Contents

    The Signals API accepts a set of signals, encoded as JSON objects, for indexing into a signals collection.

    This API requires a Fusion AI license.

    Normally, signals are indexed just like ordinary documents, through a configured datasource and index pipeline. This API is provided for cases where it is more convenient to index signals directly.

    To aggregate signals, use a SQL aggregation job, which is a kind of Spark job.

    You can manage aggregation jobs in the Jobs manager and Scheduler in the Admin UI, or with the Spark jobs API. We recommend using the Admin UI.

    See Signal types and structure to learn how to send well-formed signals to this API.

    Examples

    Send two signal events to record user clicks:

    REQUEST

    curl \
     -u USERNAME:PASSWORD -X POST -H 'Content-type:application/json' -d @- \
    https://FUSION_HOST:8764/api/signals/docs?commit=true \
    <<EOF
    [
     {"params": {
          "query": "Televisiones Panasonic  50 pulgadas",
          "filterQueries": ["cat00000","abcat0100000", "abcat0101000", "abcat0101001"],
          "docId": "2125233" },
     "type":"click",
     "timestamp": "2011-09-01T23:44:52.53Z"
     },
     {"params": {
           "query": "Sharp",
           "filterQueries": ["cat00000", "abcat0100000", "abcat0101000", "abcat0101001"],
           "docId": "2009324" },
      "type":"click",
      "timestamp": "2011-09-05T12:25:37.42Z"
     }
    ]
    EOF

    A successful request results in events being added to the signals collection. For the above example, the events will be represented as follows:

     {
      "responseHeader":{
        "status":0,
        "QTime":1,
        "params":{
          "indent":"true",
          "q":"docId: 2125233",
          "wt":"json"}
     },
      "response":{"numFound":1198,"start":0,"docs":[
          {
            "id": "7aee7b1f-5cde-4957-b73c-c15881f559ec",
            "filters_s": "abcat0100000 $ abcat0101000 $ abcat0101001 $ cat00000",
            "query_orig_s": "Televisiones Panasonic  50 pulgadas",
            "params.user_s": "000000df17cd56a5df4a94074e133c9d4739fae3",
            "docId": "2125233",
            "params.query_time__s": "2011-09-01T23:43:59.75Z",
            "query_t": "televisiones panasonic 50 pulgadas",
            "query_s": "televisiones panasonic 50 pulgadas",
            "filters_orig_ss": [
              "abcat0100000",
              "abcat0101000",
              "abcat0101001",
              "cat00000"
            ],
            "flag_s": "EVENT",
            "type_s": "click",
            "attr_params.filterQueries_": [
              "cat00000",
              "abcat0100000",
              "abcat0101000",
              "abcat0101001"
            ],
            "timestamp_dt": "2011-09-01T23:44:52.53Z",
            "_version_": 1478892846857584600
          },
          {
            "id": "6789a209-f5b5-457e-9df6-8033b8f7f317",
            "filters_s": "abcat0100000 $ abcat0101000 $ abcat0101001 $ cat00000",
            "query_orig_s": "Sharp",
            "params.user_s": "000001928162247ffaf63185cd8b2a244c78e7c6",
            "docId": "2009324",
            "params.query_time__s": "2011-09-05T12:25:01.18Z",
            "query_t": "sharp",
            "query_s": "sharp",
            "filters_orig_ss": [
              "abcat0100000",
              "abcat0101000",
              "abcat0101001",
              "cat00000"
            ],
            "flag_s": "EVENT",
            "type_s": "click",
            "attr_params.filterQueries_": [
              "cat00000",
              "abcat0100000",
              "abcat0101000",
              "abcat0101001"
            ],
            "timestamp_dt": "2011-09-05T12:25:37.42Z",
            "_version_": 1478892846859681800
          }
        ]
      }
    }