云知易】Elasticsearch服务 入门 01 快速开始使用ES

网友投稿 965 2022-05-30

前言

对于新上手的用户,可能还不太清楚如何使用elasticsearch服务,今天就为大家科普下使用Elasticsearch服务的具体过程,在此之前,先讲下使用Elasticsearch服务搜索数据的基本流程,如下所示:

第一步:新建集群

第二步:接入集群

第三步:定义数据

第四步:加载数据建立索引

第五步:搜索数据

第六步:删除集群

为了方便大家了解使用过程,我们以如下业务场景来模拟用户的需求场景和使用场景。

场景描述

某服装品牌在电商网站上经营业务,主要销售适合春夏秋冬四季穿戴的男装和女装。为了更好地了解商品的销售状况,该店铺开始使用Elasticsearch服务来进行商品月销量查询、商品价格查询、商品名称查询等,通过查询结果来充分了解目前的经营状况,进而更准确地进行决策和管理。

店铺提供的商品数据(JSON格式,文件名为“products.json”)部分内容如下所示:

[{"_id":"1","price":"100","productID":"XHDK-A-1293-#fJ3","time":"2017-09-01","level":"2","productName":"2017秋装新款文艺衬衫女装","productType1":"象牙白","productType2":"M","monthlySales":"328","commentTime":"2017-09-04","commentNum":"715","commentConetnt":"衣服真的超级好看"},  {"_id":"2","price":"205","productID":"KDKE-B-9947-#kL5","time":"2017-09-01","level":"2","productName":"2017秋装新款文艺针织毛衫女装"","productType1":"玫瑰红","productType2":"L","monthlySales":"584","commentTime":"2017-09-05","commentNum":"406","commentConetnt":"卖家包装精致"},  {"_id":"3","price":"300","productID":"JODL-X-1937-#pV7","time":"2017-09-01","level":"2","productName":"2017秋装新款文艺T恤男装","productType1":"午夜黑","productType2":"XL","monthlySales":"1245","commentTime":"2017-09-03","commentNum":"502","commentConetnt":"衣服质量不错啊"},  {"_id":"4","price":"310","productID":"QQPX-R-3956-#aD8","time":"2017-09-02","level":"2","productName":"2017秋装新款文艺风衣外套女装","productType1":"宝石蓝","productType2":"L","monthlySales":"411","commentTime":"2017-09-05","commentNum":"436","commentConetnt":"关注店家很久了"},  {"_id":"5","price":"150","productID":"ABEF-C-1820-#mC6","time":"2017-09-03","level":"2","productName":"2017秋装新款文艺牛仔裤女装","productType1":"海军蓝","productType2":"M","monthlySales":"1223","commentTime":"2017-09-06","commentNum":"1200","commentConetnt":"买到真的很惊喜"},  {"_id":"6","price":"200","productID":"BCQP-E-2365-#qE4","time":"2017-09-04","level":"2","productName":"2017秋装新款文艺休闲裤男装","productType1":"海军蓝","productType2":"L","monthlySales":"997","commentTime":"2017-09-10","commentNum":"301","commentConetnt":"打开包装,衣服没有异味"},  {"_id":"7","price":"250","productID":"EABE-D-1476-#oB1","time":"2017-09-10","level":"2","productName":"2017秋装新款文艺连衣裙女装","productType1":"青绿色","productType2":"S","monthlySales":"841","commentTime":"2017-09-15","commentNum":"299","commentConetnt":"很喜欢的衣服"},  {"_id":"8","price":"108","productID":"CDXK-F-1527-#pL2","time":"2017-09-11","level":"2","productName":"2017秋装新款文艺半身群女装","productType1":"棕色","productType2":"M","monthlySales":"85","commentTime":"2017-09-14","commentNum":"22","commentConetnt":"衣服买小了"},  {"_id":"9","price":"450","productID":"MMCE-H-4728-#nP9","time":"2017-09-11","level":"2","productName":"2017秋装新款文艺羽绒服女装","productType1":"白色","productType2":"M","monthlySales":"114","commentTime":"2017-09-14","commentNum":"22","commentConetnt":"衣服超厚,今年冬天好过了"},  {"_id":"10","price":"260","productID":"OCDA-G-2817-#bD3","time":"2017-09-12","level":"2","productName":"2017秋装新款文艺毛呢外套女装","productType1":"灰色","productType2":"L","monthlySales":"2004","commentTime":"2017-09-15","commentNum":"826","commentConetnt":"这样的价格很划算"},  {"_id":"11","price":"980","productID":"ZKDS-J-5490-#cW4","time":"2017-09-13","level":"2","productName":"2017秋装新款文艺棉服女装","productType1":"白色","productType2":"M","monthlySales":"112","commentTime":"2017-09-16","commentNum":"219","commentConetnt":"衣服穿着很舒服"},  {"_id":"12","price":"98","productID":"FKQB-I-2564-#dA5","time":"2017-09-15","level":"2","productName":"2017秋装新款文艺打底裤女装","productType1":"黑色","productType2":"M","monthlySales":"4345","commentTime":"2017-09-18","commentNum":"5473","commentConetnt":"这条裤子买了两条"},  {"_id":"13","price":"150","productID":"DMQY-K-6579-#eS6","time":"2017-09-21","level":"2","productName":"2017秋装新款文艺女鞋","productType1":"白色","productType2":"37","monthlySales":"2840","commentTime":"2017-09-25","commentNum":"5831","commentConetnt":"鞋子很好穿"},  {"_id":"14","price":"200","productID":"GKLW-l-2897-#wQ7","time":"2017-09-22","level":"2","productName":"2017秋装新款文艺男鞋","productType1":"白色","productType2":"39","monthlySales":"5879","commentTime":"2017-09-25","commentNum":"7200","commentConetnt":"鞋子很舒服"},  {"_id":"15","price":"300","productID":"HWEC-L-2531-#xP8","time":"2017-09-23","level":"2","productName":"2017秋装新款阔腿裤女装","productType1":"黑色","productType2":"M","monthlySales":"403","commentTime":"2017-09-26","commentNum":"607","commentConetnt":"款型很好看"},  {"_id":"16","price":"100","productID":"IQPD-M-3214-#yQ1","time":"2017-09-24","level":"2","productName":"2017秋装新款配雪纺衫","productType1":"乳白色","productType2":"M","monthlySales":"3045","commentTime":"2017-09-27","commentNum":"5021","commentConetnt":"卖家服务态度真好"},  {"_id":"17","price":"350","productID":"LPEC-N-4572-#zX2","time":"2017-09-25","level":"2","productName":"2017秋装新款皮衣女装","productType1":"黑色","productType2":"M","monthlySales":"239","commentTime":"2017-09-28","commentNum":"407","commentConetnt":"好评,价格实惠"},  {"_id":"18","price":"110","productID":"NQAB-O-3768-#sM3","time":"2017-09-26","level":"2","productName":"2017秋装新款内衣女装","productType1":"白色","productType2":"S","monthlySales":"6089","commentTime":"2017-09-29","commentNum":"7021","commentConetnt":"颜色很好,做工也不错"},  {"_id":"19","price":"210","productID":"HWNB-P-7879-#tN4","time":"2017-09-27","level":"2","productName":"2017秋装新款内衣男装","productType1":"白色","productType2":"L","monthlySales":"3201","commentTime":"2017-09-30","commentNum":"4059","commentConetnt":"我很喜欢,质量也不错"},  {"_id":"20","price":"230","productID":"JKHU-Q-8865-#uO5","time":"2017-09-29","level":"2","productName":"2017秋装新款文艺牛仔裤男装","productType1":"天蓝色","productType2":"M","monthlySales":"2056","commentTime":"2017-10-02","commentNum":"3842","commentConetnt":"衣服穿了几天了,洗过一次,好像没缩水"}]

新建集群

在使用Elasticsearch服务正式搜索数据之前,需要店铺使用者新建一个Elasticsearch集群,新建一个名称为“Sample-ESCluster”的集群。

1. 登录ES管理控制台。

2. 在“总览”或者“集群管理”页面,单击“创建搜索集群”,进入新建集群页面。

3. 在“基本信息”区域,输入“集群名称”,选择“可用区域”和“搜索引擎版本”。

4. 在“主机规格”区域,指定"节点数量"、“节点规格”、“存储类型”和“存储空间”。

5. 在“网络”区域,指定“虚拟私有云”、“子网”和“安全组”。

6. 单击“立即申请”,进入规格确认界面。

7. 规格确认完成后,勾选“我已经阅读并接受《公测免费使用服务条款协议》”,然后单击“提交申请”开始创建集群。

8. 系统将自动跳转到集群列表页面,您创建的集群将展现在集群列表中。且集群状态为“创建中”,耐心等待几分钟,创建成功后集群状态会变为“服务中”。

如果集群创建失败,请根据界面提示,重新创建集群。

集群新建完成后,通过集群列表,查看“Sample-ESCluster”的集群内网访问地址。如下图所示,集群内网访问地址包含集群IP和端口号,如集群IP为192.168.0.138,访问Elasticsearch需要使用端口9200,访问Kibana请使用端口5601。

接入集群

在集群创建完成后,需要申请一台弹性云主机接入集群,进行后续操作。

请访问此链接申请一台Windows操作系统的弹性云主机,http://www.huaweicloud.com/product/ecs.html。

新申请的弹性云主机需满足如下要求:

1. 操作系统为Windows。

2. 与上文创建的集群,在相同的可用区域(AZ)、相同网段、相同虚拟私有云(VPC)以及相同安全组。

3. 请按照界面指导,为此弹性云服务器申请弹性IP。

4. 按照弹性云主机的操作指导,为弹性云主机申请支持“密码方式登录Windows弹性云服务器”。

下面介绍如何使用新申请的弹性云主机访问集群。

1. 在本地使用mstsc和弹性IP远程登录此弹性云主机,或者在华为云弹性云主机的管理控制台,在此弹性云主机行中单击“远程登录”直接访问此弹性云主机。

2. 从互联网下载一个浏览器,只要浏览器满足这些版本:Chrome(36.0及以上版本)、FireFox(35.0及以上版本)、IE(11.0及以上版本,不支持IE9)。

3. 打开新安装的浏览器,直接在浏览器地址中输入Kibana的访问路径。即http://{Cluster Internal access address}。{Cluster Internal access address}为访问Elasticsearch集群的内网访问地址,包含集群IP和访问Kibana的端口号,其中,集群IP为集群内网访问地址,端口号为5601。如http://192.168.0.187:5601。

这样,您就通过弹性云主机,接入了Elasticsearch集群,您可以通过kibana进行后续操作。

定义数据

为了方便后续操作顺利进行,需要店铺使用者为“products.json”文件中的数据进行数据定义。

1. 上个步骤申请的弹性云主机中,打开浏览器,输入http://{Cluster Internal access address}打开Kibana。

{Cluster Internal access address}为访问Elasticsearch集群的内网访问地址,包含集群IP和访问Kibana的端口号,其中,集群IP为集群内网访问地址,端口号为5601。如http://192.168.0.187:5601。

2. 在“Kibana Dev Tools”界面,单击“Get to work”,进入Console界面。

3. 在Console界面,如图所示。执行如下命令,创建索引“my_store”,并指定自定义映射来定义数据类型,设置无需对精确值字段进行分析。

PUT /my_store  {    "mappings": {      "products": {        "properties": {          "productID": {            "type": "text",            "index": "not_**yzed"          },          "_id": {            "type": "integer",            "index": "not_**yzed"          },          "level": {            "type": "text",            "index": "not_**yzed"          },          "productName": {            "type": "text",            "index": "not_**yzed"          },          "price": {            "type": "integer",            "index": "not_**yzed"          },          "productType1": {            "type": "text",            "index": "not_**yzed"          },          "productType2": {            "type": "text",            "index": "not_**yzed"          },          "monthlySales": {            "type": "integer",            "index": "not_**yzed"          },          "commentTime": {            "type": "date",            "index": "not_**yzed"          },          "commentNum": {            "type": "integer",            "index": "not_**yzed"          },          "commentContent": {            "type": "text",            "index": "not_**yzed"          },          "time": {            "type": "date",            "index": "not_**yzed"          }        }      }    }  }

加载数据建立索引

在Kibana Console输入如下命令,为文档建立products类型的索引“my_store”。

POST /my_store/products/_bulk  {    "index": {      "_id": 1    }  }  {    "price": 100,    "productID": "XHDK-A-1293-#fJ3",    "time": "2017-09-01",    "level": "A",    "productName": "2017秋装新款文艺衬衫女装",    "productType1": "象牙白",    "productType2": "M",    "monthlySales": 328,    "commentTime": "2017-09-04",    "commentNum": 715,    "commentConetnt": "衣服真的超级好看"  }  {    "index": {      "_id": 2    }  }  {    "price": 205,    "productID": "KDKE-B-9947-#kL5",    "time": "2017-09-01",    "level": "A",    "productName": "2017秋装新款文艺针织毛衫女装",    "productType1": "玫瑰红",    "productType2": "L",    "monthlySales": 584,    "commentTime": "2017-09-05",    "commentNum": 406,    "commentConetnt": "卖家包装精致"  }  {    "index": {      "_id": 3    }  }  {    "price": 300,    "productID": "JODL-X-1937-#pV7",    "time": "2017-09-01",    "level": "A",    "productName": "2017秋装新款文艺T恤男装",    "productType1": "午夜黑",    "productType2": "XL",    "monthlySales": "1245",    "commentTime": "2017-09-03",    "commentNum": 502,    "commentConetnt": "衣服质量不错啊"  }  {    "index": {      "_id": 4    }  }  {    "price": 310,    "productID": "QQPX-R-3956-#aD8",    "time": "2017-09-02",    "level": "B",    "productName": "2017秋装新款文艺风衣外套女装",    "productType1": "宝石蓝",    "productType2": "L",    "monthlySales": 411,    "commentTime": "2017-09-05",    "commentNum": 436,    "commentConetnt": "关注店家很久了"  }  {    "index": {      "_id": 5    }  }  {  "price": 150,  "productID": "ABEF-C-1820-#mC6",  "time": "2017-09-03",  "level": "B",  "productName": "2017秋装新款文艺牛仔裤女装",  "productType1": "海军蓝",  "productType2":"M",  "monthlySales":1223,  "commentTime":"2017-09-06",  "commentNum":1200,  "commentConetnt":"买到真的很惊喜" }  {    "index": {      "_id": 6    }  }  {    "price": 200,    "productID": "BCQP-E-2365-#qE4",    "time": "2017-09-04",    "level": "B",    "productName": "2017秋装新款文艺休闲裤男装",    "productType1": "海军蓝",    "productType2": "L",    "monthlySales": "997",    "commentTime": "2017-09-10",    "commentNum": "301",    "commentConetnt": "打开包装,衣服没有异味"  }  {    "index": {      "_id": 7    }  }  {    "price": 250,    "productID": "EABE-D-1476-#oB1",    "time": "2017-09-10",    "level": "A",    "productName": "2017秋装新款文艺连衣裙女装",    "productType1": "青绿色",    "productType2": "S",    "monthlySales": 841,    "commentTime": "2017-09-15",    "commentNum": 299,    "commentConetnt": "很喜欢的衣服"  }  {    "index": {      "_id": 8    }  }  {    "price": 108,    "productID": "CDXK-F-1527-#pL2",    "time": "2017-09-11",    "level": "A",    "productName": "2017秋装新款文艺半身群女装",    "productType1": "棕色",    "productType2": "M",    "monthlySales": 85,    "commentTime": "2017-09-14",    "commentNum": 22,    "commentConetnt": "衣服买小了"  }  {    "index": {      "_id": 9    }  }  {    "price": 450,    "productID": "MMCE-H-4728-#nP9",    "time": "2017-09-11",    "level": "A",    "productName": "2017秋装新款文艺羽绒服女装",    "productType1": "白色",    "productType2": "M",    "monthlySales": 114,    "commentTime": "2017-09-14",    "commentNum": 22,    "commentConetnt": "衣服超厚,今年冬天好过了"  }  {    "index": {      "_id": 10    }  }  {    "price": 260,    "productID": "OCDA-G-2817-#bD3",    "time": "2017-09-12",    "level": "B",    "productName": "2017秋装新款文艺毛呢外套女装",    "productType1": "灰色",    "productType2": "L",    "monthlySales": 2004,    "commentTime": "2017-09-15",    "commentNum": 826,    "commentConetnt": "这样的价格很划算"  }  {    "index": {      "_id": 11    }  }  {    "price": 980,    "productID": "ZKDS-J-5490-#cW4",    "time": "2017-09-13",    "level": "B",    "productName": "2017秋装新款文艺棉服女装",    "productType1": "白色",    "productType2": "M",    "monthlySales": 112,    "commentTime": "2017-09-16",    "commentNum": 219,    "commentConetnt": "衣服穿着很舒服"  }  {    "index": {      "_id": 12    }  }  {    "price": 98,    "productID": "FKQB-I-2564-#dA5",    "time": "2017-09-15",    "level": "B",    "productName": "2017秋装新款文艺打底裤女装",    "productType1": "黑色",    "productType2": "M",    "monthlySales": 4345,    "commentTime": "2017-09-18",    "commentNum": 5473,    "commentConetnt": "这条裤子买了两条"  }  {    "index": {      "_id": 13    }  }  {    "price": 150,    "productID": "DMQY-K-6579-#eS6",    "time": "2017-09-21",    "level": "A",    "productName": "2017秋装新款文艺女鞋",    "productType1": "白色",    "productType2": "37",    "monthlySales": 2840,    "commentTime": "2017-09-25",    "commentNum": 5831,    "commentConetnt": "鞋子很好穿"  }  {    "index": {      "_id": 14    }  }  {    "price": 200,    "productID": "GKLW-l-2897-#wQ7",    "time": "2017-09-22",    "level": "A",    "productName": "2017秋装新款文艺男鞋",    "productType1": "白色",    "productType2": "39",    "monthlySales": 5879,    "commentTime": "2017-09-25",    "commentNum": 7200,    "commentConetnt": "鞋子很舒服"  }  {    "index": {      "_id": 15    }  }  {    "price": 300,    "productID": "HWEC-L-2531-#xP8",    "time": "2017-09-23",    "level": "A",    "productName": "2017秋装新款阔腿裤女装",    "productType1": "黑色",    "productType2": "M",    "monthlySales": 403,    "commentTime": "2017-09-26",    "commentNum": 607,    "commentConetnt": "款型很好看"  }  {    "index": {      "_id": 16    }  }  {    "price": 100,    "productID": "IQPD-M-3214-#yQ1",    "time": "2017-09-24",    "level": "B",    "productName": "2017秋装新款配雪纺衫",    "productType1": "乳白色",    "productType2": "M",    "monthlySales": 3045,    "commentTime": "2017-09-27",    "commentNum": 5021,    "commentConetnt": "卖家服务态度真好"  }  {    "index": {      "_id": 17    }  }  {    "price": 350,    "productID": "LPEC-N-4572-#zX2",    "time": "2017-09-25",    "level": "B",    "productName": "2017秋装新款皮衣女装",    "productType1": "黑色",    "productType2": "M",    "monthlySales": 239,    "commentTime": "2017-09-28",    "commentNum": 407,    "commentConetnt": "好评,价格实惠"  }  {    "index": {      "_id": 18    }  }  {    "price": 110,    "productID": "NQAB-O-3768-#sM3",    "time": "2017-09-26",    "level": "B",    "productName": "2017秋装新款内衣女装",    "productType1": "白色",    "productType2": "S",    "monthlySales": 6089,    "commentTime": "2017-09-29",    "commentNum": 7021,    "commentConetnt": "颜色很好,做工也不错"  }  {    "index": {      "_id": 19    }  }  {    "price": 210,    "productID": "HWNB-P-7879-#tN4",    "time": "2017-09-27",    "level": "B",    "productName": "2017秋装新款内衣男装",    "productType1": "白色",    "productType2": "L",    "monthlySales": 3201,    "commentTime": "2017-09-30",    "commentNum": 4059,    "commentConetnt": "我很喜欢,质量也不错"  }  {    "index": {      "_id": 20    }  }  {    "price": 230,    "productID": "JKHU-Q-8865-#uO5",    "time": "2017-09-29",    "level": "C",    "productName": "2017秋装新款文艺牛仔裤男装",    "productType1": "天蓝色",    "productType2": "M",    "monthlySales": 2056,    "commentTime": "2017-10-02",    "commentNum": 3842,    "commentConetnt": "衣服穿了几天了,洗过一次,好像没缩水"  }

当返回结果信息中created字段值为true时,表示创建成功。

Ok,搜索数据前需要进行的操作已完成,现在可以使用Elasticsearch服务来进行想要的数据搜索了。结合前面的场景,以常用的操作来举例,店铺使用者可进行如下操作来搜索数据。

搜索数据

一、精确值查找

查找价格为20的商品信息,并且不进行评分。

GET /my_store/products/_search   {       "query" : {           "constant_score" : {               "filter" : {                   "term" : {                       "price" : 230                   }               }           }       }  }

查找产品ID为“XHDK-A-1293-#fJ3”的商品信息。

GET /my_store/products/_search   {      "query" : {           "constant_score" : {               "filter" : {                   "term" : {                       "productID" : "XHDK-A-1293-#fJ3"                   }                  }           }      }  }

查找月销量为584的商品信息。

GET /my_store/products/_search   {       "query" : {           "constant_score" : {               "filter" : {                   "term" : {                       "monthlySales" : 584                   }               }           }       }  }

查找商品名称为“2017秋装新款文艺衬衫女装”的商品信息。

GET /my_store/products/_search   {       "query" : {           "constant_score" : {               "filter" : {                   "term" : {                       "productName" : "2017秋装新款文艺衬衫女装"                 }               }           }       }  }

二、组合过滤

查询价格非300,价格为230或产品ID为XHDK-A-1293-#fJ3”的商品信息:

GET /my_store/products/_search   {     "query" : {         "constant_score" : {            "filter" : {               "bool" : {                 "should" : [                    { "term" : {"price" : 230}},                    {"term" : {"productID" : "XHDK-A-1293-#fJ3"} }          ],                "must_not" : {                    "term" : {"price" : 300}                     }              }            }          }     }   }

三、多个精确值查找

查询价格为200或300的商品信息:

GET /my_store/products/_search   {      "query" : {           "constant_score" : {               "filter" : {                   "terms" : {                       "price" : [200, 300]                   }               }           }       }   }

删除集群

按照上述步骤对示例数据进行搜索,得到满意的结果后,想必大家已完全了解了Elasticsearch服务的使用流程和方法,还可以参考如下步骤,删除示例集群以及示例数据,避免造成资源浪费。

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

1. 登录Elasticsearch管理控制台。在左侧菜单栏选择“集群管理”。

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

【云知易】Elasticsearch服务 入门 01 快速开始使用ES

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

更多内容,请参见Elasticsearch服务帮助中心(http://support.huaweicloud.com/es_gls/index.html)。

云知易 ES

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:一个程序员的成长之路(一个程序员的成长之路pdf)
下一篇:excel表格制作小标签的方法教程(怎样用excel制作小标签)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~