上云无忧 > 文档中心 > 天翼云云搜索服务使用教程 - 快速开始使用Elasticsearch搜索引擎
云搜索服务
天翼云云搜索服务使用教程 - 快速开始使用Elasticsearch搜索引擎

文档简介:
本章节主要介绍云搜索服务(ES)集群的退订操作。 按需计费: 按需购买的集群无需退订,请参考包月计费退订流程,进入“控制中心”,在“集群管理”页面找到需要删除的集群,在集群列表中直接删除即可。
*产品来源:中国电信天翼云。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

本章节提供了一个简单示例,详情如下方场景描述所示。您可以参考此场景示例数据,使用云搜索服务的Elasticsearch搜索引擎搜索数据,基本操作流程如下所示:

1.创建集群

2.导入数据

3.搜索数据

4.删除集群

场景描述

某女装品牌在网上经营电商业务,其以前是使用传统数据库来为用户提供商品搜索功能,但随着用户数量和业务的增长,使用传统数据库的弊端愈来愈明显。主要问题表现为:响应速度慢、准确性低。为了改善用户体验从而避免用户流失,该电商网站开始使用Elasticsearch搜索引擎来为用户提供商品搜索功能,使用了一段时间后,不仅解决了之前使用传统数据库产生的问题,而且实现了用户数量的增长。

本章节将介绍如何使用Elasticsearch搜索引擎为用户提供搜索功能。

假设该电商网站经营商品的数据如下所示:

{ 
"products":[ 
{"productName":"2017秋装新款文艺衬衫女装","size":"L"}
{"productName":"2017秋装新款文艺衬衫女装","size":"M"}
{"productName":"2017秋装新款文艺衬衫女装","size":"S"}
{"productName":"2018春装新款牛仔裤女装","size":"M"}
{"productName":"2018春装新款牛仔裤女装","size":"S"}
{"productName":"2017春装新款休闲裤女装","size":"L"}
{"productName":"2017春装新款休闲裤女装","size":"S"}
] 
}复制

创建集群

在开始搜索数据之前,您需要创建一个集群,其搜索引擎为Elasticsearch。例如,您可以创建一个名称为“Sample-ESCluster”的集群。此集群仅用于入门指导使用,建议选用“节点规格”为“ess.spec-4u8g”,“节点存储”为“高I/O”,“节点存储容量”为“40GB”。详细操作步骤请参见 创建Elasticsearch类型集群(非安全模式)。

集群创建完成后,在集群列表查看已创建的集群,集群状态为“可用”表示集群创建成功。如下图所示。

导入数据

云搜索服务支持通过云数据迁移(简称CDM)、数据接入服务(简称DIS)、Logstash、Kibana或API将数据导入到Elasticsearch。其中Kibana是Elasticsearch的图形化界面,便于交互验证,因此,这里以Kibana为例介绍将数据导入到Elasticsearch的操作流程。

1.在云搜索服务的“集群管理”页面上,单击集群“操作”列的“Kibana”访问集群。

2.在Kibana的左侧导航中选择“Dev Tools”,单击“Get to work”,进入Console界面,如下图所示。

Console左侧区域为输入框,右侧为结果输出区域,为执行命令按钮。

3.在Console界面,执行如下命令创建索引“my_store”。

(7.x之前版本)

PUT /my_store 
{ 
  "settings": { 
    "number_of_shards": 1 
  }, 
  "mappings": { 
    "products": { 
      "properties": { 
        "productName": { 
          "type": "text", 
          "analyzer": "ik_smart" 
        }, 
        "size": { 
          "type": "keyword" 
        } 
      } 
    } 
  } 
}复制

(7.x之后版本)

PUT /my_store 
{ 
  "settings": { 
    "number_of_shards": 1 
  }, 
  "mappings": { 
          "properties": { 
        "productName": { 
          "type": "text", 
          "analyzer": "ik_smart" 
        }, 
        "size": { 
          "type": "keyword" 
        } 
      } 
    } 
  }复制

返回结果如下所示。

{ 
  "acknowledged" : true, 
  "shards_acknowledged" : true, 
  "index" : "my_store" 
}复制

4.在Console界面,执行如下命令,将数据导入到“my_store”索引中。

(7.x之前版本)

POST /my_store/products/_bulk 
{"index":{}} 
{"productName":"2017秋装新款文艺衬衫女装","size":"L"} 
{"index":{}} 
{"productName":"2017秋装新款文艺衬衫女装","size":"M"} 
{"index":{}} 
{"productName":"2017秋装新款文艺衬衫女装","size":"S"} 
{"index":{}} 
{"productName":"2018春装新款牛仔裤女装","size":"M"} 
{"index":{}} 
{"productName":"2018春装新款牛仔裤女装","size":"S"} 
{"index":{}} 
{"productName":"2017春装新款休闲裤女装","size":"L"} 
{"index":{}} 
{"productName":"2017春装新款休闲裤女装","size":"S"}复制

(7.x之后版本)

POST /my_store/_doc/_bulk 
{"index":{}} 
{"productName":"2017秋装新款文艺衬衫女装","size":"L"} 
{"index":{}} 
{"productName":"2017秋装新款文艺衬衫女装","size":"M"} 
{"index":{}} 
{"productName":"2017秋装新款文艺衬衫女装","size":"S"} 
{"index":{}} 
{"productName":"2018春装新款牛仔裤女装","size":"M"} 
{"index":{}} 
{"productName":"2018春装新款牛仔裤女装","size":"S"} 
{"index":{}} 
{"productName":"2017春装新款休闲裤女装","size":"L"} 
{"index":{}} 
{"productName":"2017春装新款休闲裤女装","size":"S"}复制

当返回结果信息中“errors”字段的值为“false”时,表示导入数据成功。

搜索数据

全文检索

假设用户进入该电商网站,她想要查找名称包含“春装牛仔裤”的商品信息,可以搜索“春装牛仔裤”。这里使用Kibana演示用户搜索数据在后台的执行命令和返回结果。

执行命令如下所示。

(7.x之前版本)

GET /my_store/products/_search 
{ 
  "query": {"match": { 
    "productName": "春装牛仔裤" 
  }} 
}复制

(7.x之后版本)

GET /my_store/_search 
{ 
  "query": {"match": { 
    "productName": "春装牛仔裤" 
  }} 
}复制

返回结果如下所示。

{ 
  "took" : 3, 
  "timed_out" : false, 
  "_shards" : { 
    "total" : 1, 
    "successful" : 1, 
    "skipped" : 0, 
    "failed" : 0 
  }, 
  "hits" : { 
    "total" : { 
      "value" : 4, 
      "relation" : "eq" 
    }, 
    "max_score" : 1.7965372, 
    "hits" : [ 
      { 
        "_index" : "my_store", 
        "_type" : "_doc", 
        "_id" : "9xf6VHIBfClt6SDjw7H5", 
        "_score" : 1.7965372, 
        "_source" : { 
          "productName" : "2018春装新款牛仔裤女装", 
          "size" : "M" 
        } 
      }, 
      { 
        "_index" : "my_store", 
        "_type" : "_doc", 
        "_id" : "-Bf6VHIBfClt6SDjw7H5", 
        "_score" : 1.7965372, 
        "_source" : { 
          "productName" : "2018春装新款牛仔裤女装", 
          "size" : "S" 
        } 
      }, 
      { 
        "_index" : "my_store", 
        "_type" : "_doc", 
        "_id" : "-Rf6VHIBfClt6SDjw7H5", 
        "_score" : 0.5945667, 
        "_source" : { 
          "productName" : "2017春装新款休闲裤女装", 
          "size" : "L" 
        } 
      }, 
      { 
        "_index" : "my_store", 
        "_type" : "_doc", 
        "_id" : "-hf6VHIBfClt6SDjw7H5", 
        "_score" : 0.5945667, 
        "_source" : { 
          "productName" : "2017春装新款休闲裤女装", 
          "size" : "S" 
        } 
      } 
    ] 
  } 
}复制
  • Elasticsearch支持分词,上面执行命令会将“春装牛仔裤”分词为“春装”和“牛仔裤”。
  • Elasticsearch支持全文检索,上面执行命令会在所有商品信息中搜索包含“春装”或“牛仔裤”的商品信息。
  • Elasticsearch与传统数据库不同,它能借助倒排索引在毫秒级返回结果。
  • Elasticsearch支持评分排序,在上面返回结果中,前两条商品信息中同时出现了“春装”和“牛仔裤”,后两条商品信息中只出现了“春装”,所以前两条比后两条与检索关键词的匹配度更高,分数更高,排序也更靠前。

聚合结果显示

该电商网站可以提供聚合结果显示功能,例如: 对“春装”对应的产品按照尺码分类,统计不同尺码的数量。这里使用Kibana演示聚合结果显示功能在后台的执行命令和返回结果。

执行命令如下所示。

(7.x之前版本)

GET /my_store/products/_search 
{ 
"query": { 
"match": { "productName": "春装" } 
}, 
"size": 0, 
"aggs": { 
"sizes": { 
"terms": { "field": "size" } 
} 
} 
}复制

(7.x之后版本)

GET /my_store/_search 
{ 
"query": { 
"match": { "productName": "春装" } 
}, 
"size": 0, 
"aggs": { 
"sizes": { 
"terms": { "field": "size" } 
} 
} 
}复制

返回结果如下所示。

(7.x之前版本)

{ 
  "took" : 31, 
  "timed_out" : false, 
  "_shards" : { 
    "total" : 1, 
    "successful" : 1, 
    "skipped" : 0, 
    "failed" : 0 
  }, 
  "hits" : { 
    "total" : 4, 
    "max_score" : 0.0, 
    "hits" : [ ] 
  }, 
  "aggregations" : { 
    "sizes" : { 
      "doc_count_error_upper_bound" : 0, 
      "sum_other_doc_count" : 0, 
      "buckets" : [ 
        { 
          "key" : "S", 
          "doc_count" : 2 
        }, 
        { 
          "key" : "L", 
          "doc_count" : 1 
        }, 
        { 
          "key" : "M", 
          "doc_count" : 1 
        } 
      ] 
    } 
  } 
}复制

(7.x之后版本 )

{ 
  "took" : 3, 
  "timed_out" : false, 
  "_shards" : { 
    "total" : 1, 
    "successful" : 1, 
    "skipped" : 0, 
    "failed" : 0 
  }, 
  "hits" : { 
    "total" : { 
      "value" : 4, 
      "relation" : "eq" 
    }, 
    "max_score" : null, 
    "hits" : [ ] 
  }, 
  "aggregations" : { 
    "sizes" : { 
      "doc_count_error_upper_bound" : 0, 
      "sum_other_doc_count" : 0, 
      "buckets" : [ 
        { 
          "key" : "S", 
          "doc_count" : 2 
        }, 
        { 
          "key" : "L", 
          "doc_count" : 1 
        }, 
        { 
          "key" : "M", 
          "doc_count" : 1 
        } 
      ] 
    } 
  } 
}复制

删除集群

当您已完全了解Elasticsearch搜索引擎的使用流程和方法后,您可以参考如下步骤,删除示例集群以及示例数据,避免造成资源浪费。

由于集群删除后,数据无法恢复,请谨慎操作。

1.登录云搜索服务管理控制台。在左侧菜单栏选择“集群管理”。

2.进入集群管理页面,选中“Sample-ESCluster”集群所在行,在操作列单击“更多”>“删除”。

3.在弹出的确认对话框中,单击“确定”完成操作。

相似文档
  • 本章节主要介绍创建用户并授权使用ES。 本章节介绍创建ES用户操作,将ES服务的策略授予用户组,并将用户添加至用户组中(一个用户组下面的用户具有相同的权限),从而使用户拥有对应的ES权限,操作流程如下图所示。
  • 本章节主要介绍云搜索服务自定义策略。 如果系统预置的ES权限,不满足您的授权要求,可以创建自定义策略。自定义策略中可以添加的授权项(Action)请参考云搜索服务API参考中的权限策略和授权项。
  • 本章节主要介绍云搜索服务(ES)如何创建Elasticsearch类型集群(安全模式)。 在开始使用云搜索服务时,您必须创建一个集群。云搜索服务6.5.4及之后的版本支持开启安全模式,安全模式开启之后,不能更改。
  • 本章节主要介绍云搜索服务(ES)如何创建Elasticsearch类型集群(非安全模式)。 在开始使用云搜索服务时,您必须创建一个集群。 操作步骤: 1.登录云搜索服务管理控制台。 2.在“总览”或者“集群管理”页面,单击“创建集群”,进入“创建集群”页面。 3.选择“当前区域”和“可用区”。
  • 本章节主要介绍云搜索服务(ES)如何接入集群。 集群创建完成后,可以接入集群开始使用Elasticsearch搜索引擎,如定义索引数据、导入数据、搜索数据等,Elasticsearch搜索引擎相关内容的深入介绍可参见《Elasticsearch:权威指南》。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部