【少女人妻的30天Elastic】Day 28 : App Search_API 介绍与应用_Analytics

Aloha!又是我少女人妻 Uerica!铁人赛终於快结束拉,没想到默默的坚持到快要终点了,我家狗狗最近训练一身绝技,以前都站起来拍我肩膀或手臂,现在都直接拍掉我滑鼠哈哈哈


Analytics API

用来分析查询行为与点击次数有关的 API

Queries : 一个时间范围内的被查询和点击次数。
Clicks : 字词的点击次数。
Counts : 一天的查询与点击总数。

Queries

依降幕返回一定时间内的查询和点击次数

GET /api/as/v1/engines/{ENGINE_NAME}/analytics/queries
POST /api/as/v1/engines/{ENGINE_NAME}/analytics/queries

Top Queries

  • page/size (optional) : 显示回传资料的页数与笔数

利用 GET 获取过去七天前十名的热门查询与次数, body 不带任何参数

curl -X GET '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/queries' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d ''

Pagination

指定回传资料的结果笔数

指定回传 20 笔

curl -X GET '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/queries' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d '{
  "page": {
    "size": 20
  }
}'

Queries Filtering

  • filters (optional) : filters key 是 parent key,如果没有提供任何选项,预设回传七天内前十笔热门的查询资料
  • clicks (optional) : 指定回传资料是否带有 clicks 资讯,希望带有 clicks 资讯为 true
  • results (optional) : 指定回传资料是否带有 results 资讯,希望带有 results 资讯为 true
  • tag (optional) : 为搜寻行为加上 tag 可供分析
  • date (optional) : 回传指定时间范围内的查询。 from 和 to 可选填,预期格式为 RFC3339 。您可以省略时间:YYYY-MM-DD。
  • all (optional) : 在 all 选项下嵌套多个过滤条件

指定回传资料带有 clicks 资讯

curl -X GET '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/queries' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d '{
  "filters": { "clicks": true }
}'

指定回传资料不带有 results 资讯

curl -X GET '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/queries' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d '{
  "filters": { "results": false }
}'

指定查询带有 single tag

curl -X GET '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/queries' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d '{
  "filters": { "tag": "web" }
}'

指定查询带有 multiple tags

curl -X GET '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/queries' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d '{
  "filters": { "tag": ["web", "mobile"] }
}'

用 POST 指定查询一定时间范围的结果

curl -X POST '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/queries' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d '{
  "filters": {
    "date": {
      "from": "2018-06-15T12:00:00+00:00",
      "to": "2018-06-19T00:00:00+00:00"
    }
  }
}'

多个过滤条件

curl -X GET '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/queries' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d '{
  "filters": {
    "all": [
      {
        "clicks": false
      }, {
        "results": true
      }
    ]
  }
}'

Full Example

完整过滤条件示范

curl -X GET '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/queries' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d '{
  "filters": {
    "all": [
      {
        "clicks": false
      }, {
        "date": {
          "from": "2018-06-15T12:00:00+00:00",
          "to": "2018-06-19T00:00:00+00:00"
        }
      }, {
        "results": false
      }, {
        "tag": ["web", "mobile"]
      }
    ]
  },
  "page": {
    "size": 20
  }
}'

Clicks

依降幕回传一定时间内的点击次数

GET /api/as/v1/engines/{ENGINE_NAME}/analytics/clicks
POST /api/as/v1/engines/{ENGINE_NAME}/analytics/clicks

Top Clicks

  • page/size (optional) : 显示回传资料的页数与笔数

利用 GET 获取过去七天前十名的热门点击次数, body 不带任何参数

curl -X GET '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/clicks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d ''

Pagination

指定回传资料的结果笔数

指定回传 20 笔

curl -X GET '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/clicks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d '{
  "page": {
    "size": 20
  }
}'

By Query

查看特定字词的点击次数

curl -X GET '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/clicks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d '{
  "query": "花莲"
}'

Clicks Filtering

  • filters (required) : filters key 是 parent key,如果没有提供任何选项,预设回传七天内前十笔热门点击资料
  • tag (optional) : 为搜寻行为加上 tag 可供分析
  • date (optional) : 回传指定时间范围内的查询。 from 和 to 可选填,预期格式为 RFC3339 。您可以省略时间:YYYY-MM-DD。
  • all (optional) : 在 all 选项下嵌套多个过滤条件

查看特定时间内的最高点击资料

curl -X GET '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/clicks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d '{
  "filters": {
    "date": {
      "from": "2018-06-15T12:00:00+00:00",
      "to": "2018-06-19T00:00:00+00:00"
    }
  }
}'

为查询带入 single tag

curl -X GET '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/clicks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d '{
  "filters": { "tag": "web" }
}'

为查询带入 multiple tag

curl -X GET '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/clicks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d '{
  "filters": { "tag": ["web", "mobile"] }
}'

多个过滤条件

curl -X GET '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/clicks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d '{
  "filters": {
    "all": [
      {
        "clicks": false
      }, {
        "results": true
      }
    ]
  }
}'

Full Example

完整过滤条件示范

curl -X GET '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/clicks' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d '{
  "filters": {
    "all": [
      {
        "clicks": false
      }, {
        "date": {
          "from": "2018-06-15T12:00:00+00:00",
          "to": "2018-06-19T00:00:00+00:00"
        }
      }, {
        "results": false
      }, {
        "tag": ["web", "mobile"]
      }
    ]
  },
  "page": {
    "size": 20
  }
}'

Count

以升幕方式回传一天的总点击数量和总查询数。默认时间/日期格式是RFC3339。

GET /api/as/v1/engines/{ENGINE_NAME}/analytics/counts
POST /api/as/v1/engines/{ENGINE_NAME}/analytics/counts

Weekly Counts

回传七天的总查询与总点击结果,一笔为一天的统计

curl -X GET '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/counts' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d ''

完整过滤条件示范

curl -X GET '{API_Endpoint}/api/as/v1/engines/{ENGINE_NAME}/analytics/counts' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer private-xxxxxxxxxx' \
-d '{
  "filters": {
    "all": [
      {
        "tag": ["mobile", "web"]
      },{
        "query": "rails"
      }, {
        "document_id": "163"
      }, {
        "date": {
          "from": "2018-07-05T12:00:00+00:00",
          "to": "2018-07-05T14:00:00+00:00"
        }
      }
    ]
  },
  "interval": "hour"
}'  

再次感谢大家阅读,今天就先到这边搂!明天见掰掰~


<<:  [Day 28] 永和美食纪录-翻转屋 锅烧意面

>>:  Day 30 聊聊一些 JS 几个常听到的名词

Day20:安全性和演算法-杂凑函数(hash function)

安全性与演算法 在电脑科学的领域里,每一刻都有数以万计的资料在进行传输,在传输的过程中,是真的安全吗...

WordPress 如何更换网站小图示 Favicon

在网站中标题名称前方有一个小图示,就是网站小图示 Favicon。 例如 Facebook 网站前方...

D-8. Rails 用Postman测试自己的WEB API && Valid Parentheses

请先安装Postman 今天完成整个CRUD,简单介绍操作Postman。 接续昨天文章 9.修改r...

动员大外宣: 让资安进步成为公司的光环(向外)

过往有人说,公司投入资源做资安,外界又看不到更不能带来订单,有意义吗。 NONO~错罗,别忘了这个是...

[Day 06] - 用Spring Boot 建立Controller

回顾前一天讲的MVC,下达request到Controller後,由Service去执行资料的 增/...