工程

Elastic App Search 助您通过搜索分析实现自动化

搜索分析的确值得我们兴奋一把。这是因为搜索分析可以揭示搜索者的意图,让您一窥搜索者深层的思考过程。本文将会解释如何利用这些宝贵的分析性搜索洞察,并加以动态应用,从而自动改进应用程序

搜索体验得以改善,这令我无比高兴

Elastic App Search 是一个打造卓越搜索体验的工具箱,是 Elastic Stack 的一部分。App Search Analytics API 可以让您获得搜索互动相关数据的编程权限。借助此权限,您可以知晓搜索者正在搜索什么,以及点击了哪些结果。

举例说明,假设我们拥有一个销售鞋履的电商应用程序。用户可以浏览主页上的露营用品,查看不同的库存类别,还可以借助搜索功能找到他们最喜爱的鞋子。在他们搜索的同时,您获得的数据越来越多。

一个简单的鞋履类电商网站。

热门搜索,按查询次数排序

可以使用分析 API 端点来确定排名最靠前的 3 个搜索词:

curl -X POST 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/sample-engine/analytics/queries' \
-H 'Content-Type: application/json' \
-H 'Authorization:Bearer private-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "page": {
    "size":3
  }
}'

收到的数据十分丰富,我们从中可以很清晰地看到人们希望寻找什么样的鞋子:

{
  "results": [
    {
      "term": "black high tops",
      "clicks":49,
      "queries":431
    },
    {
      "term": "running shoes",
      "clicks":31,
      "queries":509
    },
    {
      "term": "skate shoes",
      "clicks":14,
      "queries":100
    }
  ],
  "meta": {
    "page": {
      "size":3,
      "current":1
    }
  }
}

热门文档,按点击次数排序

我们还可以提供另一种分析模式,准确找到用户搜索后到底是哪个文档生成了点击量。

文档是一个对象,可以是一双鞋、一件电商产品、一篇文章,或者游戏中的一个角色。如果希望提供专业级搜索体验,您需要将这些对象索引到搜索引擎(App Search 提供的搜索引擎就是一个很好的例子)中。

索引之后,对象就会变成文档,而且这些文档会根据您的搜索引擎模式拥有统一格式。然后搜索者便可进行搜索,相应地您的应用程序会返回一系列结果(也就是文档)。

接下来我们便能确定这些文档中的哪些文档吸引人们点击进去:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/analytics/clicks' \
-H 'Content-Type: application/json' \
-H 'Authorization:Bearer private-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "page": {
    "size":3
  }
}'

返回的文档会以各自的 id 表示,并按照点击量进行排序:

{
  "results": [
    {
      "document_id":"4909",
      "clicks":499
    },
    {
      "document_id":"1633",
      "clicks":321
    },
    {
      "document_id":"9729",
      "clicks":200
    }
  ],
  "meta": {
    "page": {
      "size":3,
      "current":1
    }
  }
}

我们便要使用这个针对特定文档的分析查询,来在应用程序内动态优化内容。而且我们的方法可能恰好会让您改变对自己应用程序内搜索功能的看法。

开箱即用

我们通常会将搜索与搜索框联系在一起,这是有充分原因的。搜索框可谓无处不在!但是如果开始时利用为支持搜索而构建的其他 API 端点,我们便可以摆脱搜索框的束缚。

搜索本身拥有一个精细的循环式节奏:

1:用户首先会执行一个搜索查询。 2:查询内容和相关的点击数据都会通过分析结果进行跟踪。 3:您可以分析数据,并利用权重和提权内容监管同义词来微调相关性。

这是我们在示例电商应用程序(可参考上面的图片)内所看到节奏的类型。

但现在我们将会引入一个新步骤……

4:自动将露营用品相关文档放到高价值位置。

为什么这样做会有帮助?假设您的电商店铺中的某双鞋骤然变得超级热门。突然间,所有人都想购买 Red Light-up High-top Sneakers(红色发光高筒运动鞋),其文档 "id": "9797"

分析 API 返回了排名最靠前的 3 个文档,我们可以看到 9797 排名第一:

{
  "results": [
    {
      "id":"9797",
      "clicks":982
    },
    {
      "id":"1633",
      "clicks":23
    },
    {
      "id":"4909",
      "clicks":11
    }
  ],
  "meta": {
    "page": {
      "size":3,
      "current":1
    }
  }
}

由于“Red Light-up High-top Sneakers”之前是极不受欢迎的鞋款,所以它们在主登陆页面上的位置并不显眼。幸运的是,用户可以通过搜索功能找到它们。如果不能搜索的话,用户则需要找到相应类别并费力查找。但节省时间就是创造利润!我们必须做得更好。

通过使用文档 API 端点,我们可以查询特定文档:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/documents' \
-H 'Content-Type: application/json' \
-H 'Authorization:Bearer private-xxxxxxxxxxxxxxxxxxxx' \
-d '["9729"]'

这将会返回“Red Light-up High-top Sneakers”,或者返回代表“Red Light-up High-top Sneakers”的 JSON 对象。

我们的主页面现在(从功能方面来讲)就会像下面这样:

我们的店铺登陆页面有一个高亮窗口,用于动态显示所分配的产品。

蓝框中的 Red Light-up High-top Sneakers(红色发光高筒运动鞋)是通过功能调用实现的。此功能的作用是找到最热门的文档(按点击量)并加以显示。因此,主登陆页面时刻处于最佳状态

有了可动态更新且一直高度相关的登陆页面后,搜索框可作为助推剂和催化剂。人们会觉得您的店铺好像一直都能洞悉他们的心思,宛如拥有魔法一般。

App Search 提供适用于 JavaScriptNode.jsJavaRubyPython 的客户端。创建存储有最热门文档的对象,然后将这些对象用于查询,并相应决定您的主视图的结构。这是高品质搜索的第二维度。

标签!太棒啦

自动化方式的最后一个好处是分析式标记理念。所有搜索查询都可有一个“标签”作为额外的查询参数:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/search' \
-H 'Content-Type: application/json' \
-H 'Authorization:Bearer search-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "query": "dancing shoes",
  "analytics": {
    "tags": [
      "mobile",
    ]
  }
}'

运行分析查询时,可以将标签作为筛选条件,如下:

curl -X GET 'https://host-2376rb.api.swiftype.com/api/as/v1/engines/example-engine/analytics/clicks' \
-H 'Content-Type: application/json' \
-H 'Authorization:Bearer private-xxxxxxxxxxxxxxxxxxxxxxxx' \
-d '{
  "filters": { "tag": "mobile" }
}'

在这个例子中,将会展示点击量排名靠前的文档,并按照给定标签 “mobile”(移动端)进行筛选。

您还可以根据用户访问网页的方式动态分配标签。他们搜索时使用的是移动设备吗?如果是,则将这些查询标记为 "mobile"(移动端)。有可能使用手机的用户会搜索其他款式的鞋子。知道这一点之后,您便可创建功能,让登陆页面基于用户使用的是移动设备还是电脑,采取不同操作并显示不同内容。

总结

搜索分析可以通过数据提供深入洞见。您可以基于这些数据制定决策并自动采取快捷方法来改善用户体验。人们找到所需内容的速度越快,他们就越有可能实现您的双赢目标:浏览量、销售量或客户互动。

现在,您可通过两种方式开始使用 App Search,既可免费试用 14 天我们的托管版本,也可下载公测版(自管型版本)。每个新的试用版都预加载了一个样本数据集,这样您便可以先进行试验,然后再引入自己的数据。