• [技术干货] Elasticsearch 使用建议
    本帖最后由 风云令 于 2017-11-9 15:39 编辑操作场景 Elasticsearch是开源搜索引擎,在深入使用Elasticsearch搜索引擎过程中,积累了一些经 验和技巧,建议用户在使用Elasticsearch服务时,作为参考。 提高索引效率 1. 使用多进程或多线程发送数据到Elasticsearch一个单线程发送bulk请求不能够发挥一个集群的索引能力。为了更好地利用集群的资源,应该使用多线程或多进程来发送数据,同时这将有助于减少每次fsync的成本。 对于相同大小的bulk请求,通过测试可以得到最优的线程数量。可以逐步增加线程数量直至到集群中的机器IO或CPU饱和。 2. 增加refresh_interval刷新的间隔时间 默认情况下,每个分片每秒自动刷新一次。但并不是所有场景都需要每秒刷新。在使用Elasticsearch索引大量的日志文件,想优化索引速度而不是近实时搜索,可以通过设置refresh_interval,降低每个索引的刷新频率。 [code]PUT /my_logs { "settings": { "refresh_interval": "30s" } }[/code] 3. 在初始化索引时,可以禁用refresh和replicas数量如果需要一次加载较大数据量的数据进index里面时,可以先禁用refresh,把“refresh_interval”设置成为“-1”,把“number_of_replicas”设置成“0”。暂时把多个shard副本关闭(即如果当前index发生损坏便用丢失数据),但是这样做可以大大加快索引速度。当初始化索引完成,可以将refresh_interval和number_of_replicas设置回原来的值。 选择合适的分片数和副本数 在创建索引数据时,最好指定相关的分片数和副本数,否则会使用服务器中的默认配置参数“shards=5, replicas=1”,即分片数为5,副本数为1。分片数,与检索速度非常相关的的指标,如果分片数过少或过多都会导致检索比较慢。分片数过多会导致检索时打开比较多的文件,且会导致多台服务器之间通讯慢。而分片数过少会导致单个分片索引过大,所以检索速度慢。 1. 根据机器数、磁盘数、索引大小等设置分片数,单个分片最好不要超过10GB。 2. 一个机器上的分片数最好不好超过3个,配置“total_shards_per_nodes”参数,限 制每个index每个节点最多分片多少个分片。 [code]PUT /my_index { "settings": { "number_of_shards": 1, "number_of_replicas": 0 } }[/code] [indent] 将数据存放在不同的索引 Elasticsearch是基于Lucene进行索引和存储数据的,最佳的工作方式是密集的数据,即是所有的document拥有相同的字段。 1. 避免把无关联的数据放在同一个index 不要把完全不同的数据结构document放在同一个index里。最好是放到不同的index里,可以考虑创建一些较小的index,用较少的shard去存储。 2. 避免不同的type放在同一个index 多个type放在单个index看起来是个简单的方法,但是Elasticsearch并不是基于type来存储的,不同的type在单个index会影响效率。如果type没有非常相似的mapping,建议放到一个单独的index。 3. 同一个index里面不同type之间字段不能冲突 如果有两个不同的type,每个type都有同名的字段,但映射不同,这在Elasticsearch是不允许的。 按照时间范围创建索引 在Elasticsearch用于存储跟时间相关的数据时,如日志数据,建议按照时间范围创建索引,而不是把所有数据都存放到一个超级大的索引里面。基于时间范围索引。可以开始于一个按年的索引(logs_2014)或按月的索引(logs_2014-10)。当数据量变得非常庞大的时候切换到一个按天的索引(logs_2014-10-24)。 1. 扩容的时候根据当前数据量选择合适的shard和副本 针对时间范围创建的每个索引都可以灵活的设置Shard数和副本,这样就不需要在 一开始设置一个很大的shard来考虑扩容的情况。在集群扩容之后也可以方便的挑 战时间范围周期来适配集群规模。 2. 删除旧数据只需要删除旧的索引 [/indent]DELETE /logs_2014-09 3. 利用alias机制可以在索引间灵活切换 [code]POST /_aliases { "actions": [ { "add": { "alias": "logs_current", "index": "logs_2014-10" }}, { "remove": { "alias": "logs_current", "index": "logs_2014-09" }} ] }[/code] [indent] 4. 针对不再更新的索引,如上周或者上月的索引,进行索引优化以提高查询效率 [/indent][code]POST /logs_2014-09-30/_settings { "number_of_replicas": 0 } POST /logs_2014-09-30/_optimize?max_num_segments=1 POST /logs_2014-09-30/_settings { "number_of_replicas": 1 }[/code] 优化索引配置 1. 禁用_all字段 当索引一个文档的时候,Elasticsearch取出所有字段的值拼接成一个大的字符串,作为_all字段进行索引。如果搜索时用指定字段来代替_all字段,将会更好控制搜索结果。当_all字段不再有用的时候,可以将它置为失效。 [indent][code]PUT /my_index { "mappings": { "_default_": { "_all": { "enabled": false } } } }[/code] 2. 区分text和keyword 在Elasticsearch 5.x版本string字段被拆分成两种新的数据类型:text用于全文搜索的,而keyword用于关键词搜索。对于不需要分词的字符串精确值字段,如标签或枚举,建议配置为keyword类型。[code]PUT my_index { "mappings": { "my_type": { "properties": { "tags": { "type": "keyword" }, "full_name": { "type": "text" } } } } }[/code] [/indent][indent] 3. 基于text字段的聚合统计 分词字段的聚合统计不是一种常见的需求。在Elasticsearch对于分词字段的聚合统计需要用到fielddata,默认是禁用的,开启fielddata会带来较大的内存负担。建议的做法是分词字符串进行多字段映射,映射为一个text字段用于全文检索,和一个keyword字段用于聚合统计。[code]PUT my_index { "mappings": { "my_type": { "properties": { " full_name": { "type": "text", "fields": { "raw": { "type": "keyword" } } } } } } }[/code] [/indent] 使用索引模板 Elasticsearch支持通过索引模板控制一些新建索引的设置(settings)和映射(mappings),如限制分片数为1,并且禁用_all域。索引模板可以用于控制何种设置(settings)应当被应用于新创建的索引: 1.索引模板可以通过template字段指定通配符。 2.多个索引模板可以通过order指定覆盖顺序。 [code]PUT /_template/my_logs { "template": "logstash-*", "order": 1, "settings": { "number_of_shards": 1 }, "mappings": { "_default_": { "_all": { "enabled": false } } }, "aliases": { "last_3_months": {} } }[/code] 数据备份和恢复 Elasticsearch副本提供了高可靠性,让您可以容忍零星的节点丢失而不会中断服务。但是,副本并不提供对灾难性故障的保护。对这种情况,你需要的是对集群真正的备份,在某些东西确实出问题的时候有一个完整的拷贝。 备份集群,您可以使用snaps** API。这个会拿到集群里当前的状态和数据然后保存到一个共享仓库里。其备份过程是智能的。第一个快照会是一个数据的完整拷贝,后续的快照会保留的是已存快照和新数据之间的差异。随着你不时的对数据进行快照,备份也在增量的添加和删除。这意味着后续备份会相当快速,因为它们只传输很小的数据量。 用过滤提高查询效率 过滤器的执行速度非常快,不会计算相关度(直接跳过了整个评分阶段),而且很容易被缓存。通常当查找一个精确值的时候,我们不希望对查询进行评分计算。只希望对文档进行包括或排除的计算,所以我们会使用constant_score查询以非评分模式来执行term查询并以一作为统一评分。 [code]GET /my_store/products/_search { "query" : { "constant_score" : { "filter" : { "term" : { "city" : “London” } } } } }[/code] 采用scroll API 返回大量数据 1. 避免深度翻页 先查后取的过程支持用from和size参数分页,但有限制。结果集在返回之前需要在每个分片上先进行排序,然后合并之后再排序输出。 使用足够大的from值,排序过程可能会变得非常沉重,使用大量的CPU、内存和带宽。因此,强烈建议不要使用深分页。 2. 采用scroll查询返回大量数据 scroll查询可以用来对Elasticsearch有效地执行大批量的文档查询,而又不用付出深度分页那种代价。scroll查询允许我们 先做查询初始化,然后再批量地拉取结果。
  • 快速开始使用Elasticsearch服务
    本帖最后由 风云令 于 2017-11-29 11:15 编辑前言 对于新上手的用户,可能还不太清楚如何使用Elasticsearch服务,今天就为大家科普下使用Elasticsearch服务的具体过程,在此之前,先讲下使用Elasticsearch服务搜索数据的基本流程,如下所示: [*]第一步:新建集群 [*]第二步:接入集群 [*]第三步:定义数据 [*]第四步:加载数据建立索引 [*]第五步:搜索数据 [*]第六步:删除集群 为了方便大家了解使用过程,我们以如下业务场景来模拟用户的需求场景和使用场景。 场景描述 某服装品牌在电商网站上经营业务,主要销售适合春夏秋冬四季穿戴的男装和女装。为了更好地了解商品的销售状况,该店铺开始使用Elasticsearch服务来进行商品月销量查询、商品价格查询、商品名称查询等,通过查询结果来充分了解目前的经营状况,进而更准确地进行决策和管理。 店铺提供的商品数据(JSON格式,文件名为“products.json”)部分内容如下所示: [code][{"_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":"衣服穿了几天了,洗过一次,好像没缩水"}] [/code] 新建集群 在使用Elasticsearch服务正式搜索数据之前,需要店铺使用者新建一个Elasticsearch集群,新建一个名称为“Sample-ESCluster”的集群。 [*]登录ES管理控制台。 [*]在“总览”或者“集群管理”页面,单击“创建搜索集群”,进入新建集群页面。 [*]在“基本信息”区域,输入“集群名称”,选择“可用区域”和“搜索引擎版本”。 [*]在“主机规格”区域,指定"节点数量"、“节点规格”、“存储类型”和“存储空间”。 [*]在“网络”区域,指定“虚拟私有云”、“子网”和“安全组”。 [*]单击“立即申请”,进入规格确认界面。 [*]规格确认完成后,勾选“我已经阅读并接受《公测免费使用服务条款协议》”,然后单击“提交申请”开始创建集群。 [*]系统将自动跳转到集群列表页面,您创建的集群将展现在集群列表中。且集群状态为“创建中”,耐心等待几分钟,创建成功后集群状态会变为“服务中”。 如果集群创建失败,请根据界面提示,重新创建集群。 3726 集群新建完成后,通过集群列表,查看“Sample-ESCluster”的集群内网访问地址。如下图所示,集群内网访问地址包含集群IP和端口号,如集群IP为192.168.0.138,访问Elasticsearch需要使用端口9200,访问Kibana请使用端口5601。 3504 接入集群 在集群创建完成后,需要申请一台弹性云主机接入集群,进行后续操作。 请访问此链接申请一台Windows操作系统的弹性云主机,http://www.huaweicloud.com/product/ecs.html。 新申请的弹性云主机需满足如下要求: [*]操作系统为Windows。 [*]与上文创建的集群,在相同的可用区域(AZ)、相同网段、相同虚拟私有云(VPC)以及相同安全组。 [*]请按照界面指导,为此弹性云服务器申请弹性IP。 [*]按照弹性云主机的操作指导,为弹性云主机申请支持“密码方式登录Windows弹性云服务器”。 3505 3506 下面介绍如何使用新申请的弹性云主机访问集群。 [*]在本地使用mstsc和弹性IP远程登录此弹性云主机,或者在华为云弹性云主机的管理控制台,在此弹性云主机行中单击“远程登录”直接访问此弹性云主机。 [*]从互联网下载一个浏览器,只要浏览器满足这些版本:Chrome(36.0及以上版本)、FireFox(35.0及以上版本)、IE(11.0及以上版本,不支持IE9)。 [*]打开新安装的浏览器,直接在浏览器地址中输入Kibana的访问路径。即http://{Cluster Internal access address}。{Cluster Internal access address}为访问Elasticsearch集群的内网访问地址,包含集群IP和访问Kibana的端口号,其中,集群IP为集群内网访问地址,端口号为5601。如http://192.168.0.187:5601。 这样,您就通过弹性云主机,接入了Elasticsearch集群,您可以通过kibana进行后续操作。 3508 定义数据 为了方便后续操作顺利进行,需要店铺使用者为“products.json”文件中的数据进行数据定义。 [*]上个步骤申请的弹性云主机中,打开浏览器,输入http://{Cluster Internal access address}打开Kibana。 {Cluster Internal access address}为访问Elasticsearch集群的内网访问地址,包含集群IP和访问Kibana的端口号,其中,集群IP为集群内网访问地址,端口号为5601。如http://192.168.0.187:5601。 [*]在“Kibana Dev Tools”界面,单击“Get to work”,进入Console界面。 [*]在Console界面,如图所示。执行如下命令,创建索引“my_store”,并指定自定义映射来定义数据类型,设置无需对精确值字段进行分析。 3509 [code]PUT /my_store { "mappings": { "products": { "properties": { "productID": { "type": "text" }, "id":{ "type": "integer" }, "level": { "type": "text" }, "productName": { "type": "text" }, "price": { "type": "integer" }, "productType1": { "type": "text" }, "productType2": { "type": "text" }, "monthlySales": { "type": "integer" }, "commentTime": { "type": "date" }, "commentNum": { "type": "integer" }, "commentContent": { "type": "text" }, "time": { "type": "date" } } } } }[/code] 加载数据建立索引 在Kibana Console输入如下命令,为文档建立products类型的索引“my_store”。 [code]POST /my_store/products/_bulk {"index":{}} {"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":{}} {"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":{}} {"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":{}} {"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":{}} {"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":{}} {"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":{}} {"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":{}} {"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":{}} {"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":{}} {"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":{}} {"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":{}} {"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":{}} {"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":{}} {"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":{}} {"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":{}} {"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":{}} {"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":{}} {"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":{}} {"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":{}} {"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":"衣服穿了几天了,洗过一次,好像没缩水"} [/code] 当返回结果信息中created字段值为true时,表示创建成功。 Ok,搜索数据前需要进行的操作已完成,现在可以使用Elasticsearch服务来进行想要的数据搜索了。结合前面的场景,以常用的操作来举例,店铺使用者可进行如下操作来搜索数据。 搜索数据 [*]精确值查找 查找价格为230的商品信息,并且不进行评分。[code]GET /my_store/products/_search { "query": { "constant_score": { "filter": { "term": { "price": 230 } } } } }[/code] 查找产品ID为“XHDK-A-1293-#fJ3”的商品信息。 [code]GET /my_store/products/_search { "query": { "constant_score": { "filter": { "term": { "productID": "XHDK-A-1293-#fJ3" } } } } }[/code] 查找月销量为584的商品信息。 [code]GET /my_store/products/_search { "query": { "constant_score": { "filter": { "term": { "monthlySales": 584 } } } } }[/code] 查找商品名称为“2017秋装新款文艺衬衫女装”的商品信息。 [code]GET /my_store/products/_search { "query": { "constant_score": { "filter": { "term": { "productName": "2017秋装新款文艺衬衫女装" } } } } }[/code] [*]组合过滤 查询价格非300,价格为230或产品ID为XHDK-A-1293-#fJ3”的商品信息: [code]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 } } } } } } }[/code] 删除集群 按照上述步骤对示例数据进行搜索,得到满意的结果后,想必大家已完全了解了Elasticsearch服务的使用流程和方法,还可以参考如下步骤,删除示例集群以及示例数据,避免造成资源浪费。 由于集群删除后,数据无法恢复,请谨慎操作。 1. 登录Elasticsearch管理控制台。在左侧菜单栏选择“集群管理”。 2. 进入集群管理页面,选中“Sample-ESCluster”集群所在行,在操作列选择“删除”。 3. 在弹出的确认对话框中,单击“确认”完成操作。
  • 易用上云-华为云对象存储服务应用系列②--ElasticSearch归档
    易用上云-华为云对象存储服务应用系列②--ElasticSearch归档基本介绍ElasticSearch支持对数据进行快照,然后把快照归档到S3对象存储、共享NAS等存储服务中。OBS是与亚马逊AWS S3兼容的,ElasticSearch同样能把快照数据归档到OBS上。配置指导下面就来介绍一下怎么通过repository-s3插件将Elasticsearch快照数据归档到OBS上1. 安装repository-s3插件Elasticsearch官网提供了安装指导:https://www.elastic.co/guide/en/elasticsearch/plugins/5.5/repository-s3.html注意:repository-s3的版本要和Elasticsearch的版本配套。这里使用的Elasticsearch、repository-s3的版本都是5.5.2。一开始用ES版本是5.5.0,安装5.5.2版本的repository-s3失败:1763版本配套,安装成功:1764这里把插件安装包直接下载到本地进行安装的,在线安装可以参考上面官网的安装指导。安装成后在es的plugins目录下可以看到安装成功的插件1765ES集群里面所有节点都要安装repository-s3插件2. 配置快照仓库a) 预置条件:在华为云上开通OBS对象存储服务,拿到OBS的AK/SK,在OBS里创建归档快照用的桶,我创的桶是esbucket。OBS门户:http://www.hwclouds.com/product/obs.htmlb) 参照ES官网的指导,配置快照仓库,json格式如下:1766Region:由于这里对接的是OBS对象存储服务,这里不要配置region信息,插件里填了region后,插件会强制把endpiont改成AWS的域名;Endpoint:对接到OBS对象存储服务endpoint必须要填,根据桶的位置,填写桶所在区域对应的OBS对象存储服务的域名;Protocol:我这里测试用的是http,OBS是支持https的;https比http要复杂一点,需要从OBS服务端下载https证书;ES官网里还介绍了其他配置参数,可以根据自己的实际需求做配置:https://www.elastic.co/guide/en/elasticsearch/plugins/5.5/repository-s3-repository.html c) 开启仓库这里使用curl命令给ES发请求来打开仓库,当然也可以使用ES的SDK来开启:1767可以查询当前打开的仓库:1768这里创建了2个仓库:17693. 备份快照触发ES执行快照归档:url -X PUT http://127.0.0.1:9200/_snaps**/my_s3_repository/snaps**_3?wait_for_completion=true1770归档成功:1771使用OBS Browser查看esbucket桶里的数据:1773OBS Browser下载链接:http://developer.hwclouds.com/tools/obs.html4. 恢复快照:1774 1775
总条数:153 到第
上滑加载中