ElasticSearch:华为云搜索CSS 之POC操作记录
2019/03/06 09:00
ES文档官方:https://support.huaweicloud.com/usermanual-es/es_01_0024.html
华为云区域:华北北京1
ES集群控制台:地址:
ECS控制台:地址:
ps:操作环境:华为云服务器上命令操作,使用bulk API通过cURL命令导入数据文件,以JSON数据文件为例。
华为云ES集群内网ip:xx.xx.xx.xx:9200
★查询索引
curl 'http://xx.xx.xx.xx:9200/_cat/indices'
查询索引下的数据
curl -XGET 'http://xx.xx.xx.xx:9200/poc_index/_search?pretty'
删除索引
curl -XDELETE 'http://xx.xx.xx.xx:9200/ddddd_index'
查询某一个索引库中的数据
查询整个索引库:curl -XGET http://master:9200/bigdata_p/_search?pretty
在url后面加上一个pretty则会对返回结果进行格式化,
查询某一个type:curl -XGET http://master:9200/bigdata_p/product/_search?pretty
查询具体的一条记录:curl -XGET http://master:9200/bigdata_p/product/1?pretty
查询一条索引文档中的具体的字段:curl -XGET http://master:9200/bigdata_p/product/1?_source=name&pretty
如果要查询多个字段,使用","进行隔开。eg.
curl -XGET http://master:9200/bigdata_p/product/1?_source=name,author&pretty
获取source所有数据
curl -XGET http://master:9200/bigdata_p/product/1?_source&pretty
根据条件进行查询
curl -XGET http://master:9200/bigdata_p/product/_search?q=name:hbase,hive&pretty
删除索引下的数据
POST /poc_index/_delete_by_query
{
"query": {
"match_all": {
}
}
}
★创建索引:
curl -X PUT http://xx.xx.xx.xx:9200/my_store -d '
{
"settings": {
"number_of_shards": 1
},
"mappings": {
"products": {
"properties": {
"productName": {
"type": "text"
},
"size": {
"type": "keyword"
}
}
}
}
}' -H 'Content-Type: application/json'
ps: 添加 -H 'Content-Type: application/json' ,否则报错不支持json格式。
★本地创建test.json文件。添加内容:
{"index": {"_index":"my_store","_type":"products"}} {"productName": "2019秋装新款文艺衬衫女装","size": "M"}
-------------------------------------------------------------------------------------
ps:一定要记得在数据最后,添加换行,否则导入数据报错。!!!
需要注意的是{"index":{"_id":"1"}}和文件末尾另起一行换行是不可少的
参见文章:https://www.cnblogs.com/tonglin0325/p/8446975.html
★上传test.json文件到服务器,路径下执行命令导入数据。使用time命令打印命令的执行过程消耗的时间:
命令:
time curl -X PUT "http://xx.xx.xx.xx:9200/_bulk" -H 'Content-Type: application/json' --data-binary @test.json
以下为测试不同数量的数据导入结果:
1条:0.012s

1万条:3.013s

6万条:23.073s

=======================================================
使用springboot整合ES进行数据插入demo:
新建springboot项目:yml配置:
spring: #elasticsearch配置 data: elasticsearch: cluster-name: Es-23b6 cluster-nodes: 192.168.0.166:9300 repositories: enabled: true
ps:华为云ES控制台可以看到cluster-name和cluster-nodes,注意端口一定要改为9300,因为是集群的原因。否则异常:
org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [{#transport#-1}{S428skP0SrqzcOn8W7vhHg}{192.168.0.166}{192.168.0.166:9200}] at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:349) ~[elasticsearch-6.4.3.jar!/:6.4.3] at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:247) ~[elasticsearch-6.4.3.jar!/:6.4.3] at org.elasticsearch.client.transport.TransportProxyClient.execute(TransportProxyClient.java:60) ~[elasticsearch-6.4.3.jar!/:6.4.3] at org.elasticsearch.client.transport.TransportClient.doExecute(TransportClient.java:381) ~[elasticsearch-6.4.3.jar!/:6.4.3] at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:407) ~[elasticsearch-6.4.3.jar!/:6.4.3] at org.elasticsearch.client.support.AbstractClient.execute(AbstractClient.java:396) ~[elasticsearch-6.4.3.jar!/:6.4.3] at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:46) ~[elasticsearch-6.4.3.jar!/:6.4.3] at org.springframework.data.elasticsearch.core.ElasticsearchTemplate.index(ElasticsearchTemplate.java:577) ~[spring-data-elasticsearch-3.1.5.RELEASE.jar!/:3.1.5.RELEASE] at org.springframework.data.elasticsearch.repository.support.AbstractElasticsearchRepository.save(AbstractElasticsearchRepository.java:156) ~[spring
参见文章:https://blog.csdn.net/adsl624153/article/details/78935796
pom中引入依赖:
<!-- elasticsearch --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch </artifactId> <version>2.0.2.RELEASE</version> </dependency>
先对ES创建索引:【linux命令行执行】
创建索引
curl -X PUT http://192.168.0.166:9200/my_store -d '
{
"settings": {
"number_of_shards": 1
},
"mappings": {
"products": {
"properties": {
"id": {
"type": "long"
},
"productName": {
"type": "text"
},
"size": {
"type": "keyword"
}
}
}
}
}' -H 'Content-Type: application/json'
创建实体类:
package com.huawei.Bean;
import org.springframework.data.elasticsearch.annotations.Document;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;
/**
* * @author :ayfei
* @createTime :2019年3月5日下午2:13:31
* @description : */
@Data
@AllArgsConstructor
@NoArgsConstructor //indexName代表索引 名 称 ,type代表表名称
@Document(indexName = "my_store", type = "products")
public class Notice {
//id
@JsonProperty("id")
private Long id; //
@JsonProperty("productName")
private String productName;
@JsonProperty("size")
private String size;
}
创建Dao层接口:
package com.huawei.Dao;
/**
* * @author :ayfei
* @createTime :2019年3月5日下午2:15:26
* @description :
*/
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Component;
import com.huawei.Bean.Notice;
@Component public interface NoticeDao extends ElasticsearchRepository<Notice, Long> {
}
controller层部分代码,直接调用ES的相关API:
@RequestMapping(value = "/saveOne", method = RequestMethod.POST)
public String saveOne(@RequestBody @Valid Notice article){
long start = System.currentTimeMillis();
log.info("=====start System.currentTimeMillis()====="+start);
noticeDao.save(article);
long end = System.currentTimeMillis();
log.info("=====end System.currentTimeMillis()====="+end);
long timeRes = end-start;
log.info("存储一条数据到ES的执行时间"+ timeRes + "ms");
stringRedisTemplate.opsForValue().set("timeOneToES", timeRes+"ms");
return "存储一条数据到ES的执行时间"+ timeRes + "ms";
}
ElasticSearch:华为云搜索CSS 之POC操作记录的更多相关文章
- 华为云kafka POC 踩坑记录
2019/03/08 18:29 最近在进行华为云相关POC验证,个人主要负责华为云DMS kafka相关.大致数据流程是,从DIS取出数据,进行解析处理,然后放入kafka,再从kafka中取出数据 ...
- 大型情感剧集Selenium:6_selenium中的免密登陆与cookie操作 #华为云·寻找黑马程序员#
欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...
- 华为云提供针对Nuget包管理器的缓存加速服务
在Visual Studio 2013.2015.2017中,使用的是Nuget包管理器对第三方组件进行管理升级的.而且 Nuget 是我们使用.NET Core的一项基础设施,.NET的软件包管理器 ...
- 云搜索服务在APP搜索场景的应用
搜索无处不在,尤其是在移动互联的今天.无论是社交,电商,还是视频等APP中,搜索都已经在其中扮演了重要的角色.作为信息的入口,搜索能帮用户从海量信息中找到想要的信息.在APP搜索的典型场景如下: ● ...
- CentOS 7.4 下搭建 Elasticsearch 6.3 搜索群集
上个月 13 号,Elasticsearch 6.3 如约而至,该版本和以往版本相比,新增了很多新功能,其中最令人瞩目的莫过于集成了 X-Pack 模块.而在最新的 X-Pack 中 Elastics ...
- 这个七夕节,用Python为女友绘制一张爱心照片墙吧!【华为云技术分享】
欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字“加群”,加入华为云线上技术讨论群:输入关键字“最新活动”,获取华为云最新特惠促销.华为云诸多技术大咖.特 ...
- 华为云·寻找黑马程序员#海量数据的分页怎么破?【华为云技术分享】
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...
- 使用Python开发小说下载器,不再为下载小说而发愁 #华为云·寻找黑马程序员#
需求分析 免费的小说网比较多,我看的比较多的是笔趣阁.这个网站基本收费的章节刚更新,它就能同步更新,简直不要太叼.既然要批量下载小说,肯定要分析这个网站了- 在搜索栏输入地址后,发送post请求获取数 ...
- 爬虫新宠requests_html 带你甄别2019虚假大学 #华为云·寻找黑马程序员#
python模块学习建议 学习python模块,给大家个我自己不专业的建议: 养成习惯,遇到一个模块,先去github上看看开发者们关于它的说明,而不是直接百度看别人写了什么东西.也许后者可以让你很快 ...
随机推荐
- OpenXml 2.0 读取Excel
Excel 单元格中的数据类型包括7种: Boolean.Date.Error.InlineString.Number.SharedString.String 读取源代码: List<strin ...
- maven可用镜像
<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> & ...
- cocos2dx v3.x lua绑定分析
打算新项目转到cocos2dx v3上了,下载代码浏览过后发现改动真是非常大,结构性调整很多. 比如tolua绑定这一块,就几乎全翻新了. 胶水代码的生成,改成了全自动式的,通过clang来分析c++ ...
- idea中java项目增加module后,手动增加xml文件,合并到webapp/WEB-INFO或WEB-INFO(包)
当手工增加一个module,增加配置文件(如:web.xml)需要合并到文件夹里,要不众多文件在一个src文件夹下,太凌乱. 1. 合并到webapp/WEB-INFO下 a. 首先增加webapp目 ...
- Android运行时Crash自动恢复框架-Recovery
转自:http://zhengxiaoyong.me/2016/09/05/Android%E8%BF%90%E8%A1%8C%E6%97%B6Crash%E8%87%AA%E5%8A%A8%E6%8 ...
- 定时处理组件---Quartz.net
1.认识任务调度 所谓任务调度,就是以将业务区块任务化(即抽象成每一个独立的任务,执行每个任务便完成某种业务的需求).比如,我们有一个订单系统,现在有这样的一个需求,就是需要在某一时间点去扫描数据库, ...
- [翻译]pytest测试框架(二):使用
此文已由作者吴琪惠授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 调用pytest 调用命令: python -m pytest [...] 上面的命令相当于在命令行直接调用 ...
- 开发php接口注意点
1.制定规范 开发前一定要定好一个规范,比如要定好数据返回的通用参数和格式.关于数据格式,用的比较多的有xml和json,我建议用json,因为json比xml的好处更多. 2.精简的返回数据 接口数 ...
- Java实例练习——基于UDP协议的多客户端通信
昨天学习了UDP协议通信,然后就想着做一个基于UDP的多客户端通信(一对多),但是半天没做出来,今天早上在参考了很多代码以后,修改了自己的代码,然后运行成功,在这里分享以下代码,也说一下自己的认识误区 ...
- 1、kubernetes系统基础190622
1.容器编排工具 docker编排工具三剑客:docker compose, docker swarm, docker machine IDC的操作系统:mesos 提供容器编排框架:marathon ...