来自官网,版本为2.3

注意elasticsearch依赖jdk,2.3依赖jdk7

下载rpm包并安装

wget -c https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.3.5/elasticsearch-2.3.5.rpm
rpm -ivh elasticsearch-2.3.5.rpm

配置文件位于/etc/elasticsearch/
日志默认位于/var/log/elasticsearch/,可在配置文件中修改
没有特殊要求,默认即可使用,启动停止等操作如下

/etc/init.d/elasticsearch {start|stop|status|restart|reload}

启动默认占用端口9200,可在配置文件中修改

下面三个命令依次为,检查集群状况、检查节点状况、显示所有的索引(刚开始是没有索引的)

节点名称默认是随机起的,可以在配置文件中指定

curl 'localhost:9200/_cat/health?v'
curl 'localhost:9200/_cat/nodes?v'
curl 'localhost:9200/_cat/indices?v'

创建一个索引 customer(可选,因为直接插入数据的时候若索引名不存在会自动创建);

在索引customer中插入一条 type=external, id=1 的数据并查询这条数据;

删除这条数据,最后删除索引customer;

curl -XPUT 'localhost:9200/customer?pretty'
curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '{"name": "John Doe"}'
curl -XGET 'localhost:9200/customer/external/1?pretty'
curl -XDELETE 'localhost:9200/customer/external/1?pretty'
curl -XDELETE 'localhost:9200/customer?pretty'

可以重复执行插入数据的命令来替换整条数据;

插入数据时可以不指定id,这样会自动生成一个(注意这里是post);

curl -XPOST 'localhost:9200/customer/external?pretty' -d '{"name": "Jane Doe"}'

而修改某条数据则应该这样;

curl -XPOST 'localhost:9200/customer/external/1/_update?pretty' -d '{"doc": { "name": "John Doe update" }}'
curl -XPOST 'localhost:9200/customer/external/1/_update?pretty' -d '{"doc": { "name": "John Doe update", "age": 20 }}'

修改数据还可以用脚本script,需要另外开篇记录;

下面是批量插入和更新数据;

curl -XPOST 'localhost:9200/customer/external/_bulk?pretty' -d '
{"index":{"_id":"1"}}
{"name": "John Doe" }
{"index":{"_id":"2"}}
{"name": "Jane Doe" }
'
curl -XPOST 'localhost:9200/customer/external/_bulk?pretty' -d '
{"update":{"_id":"1"}}
{"doc": { "name": "John Doe becomes Jane Doe" } }
{"delete":{"_id":"2"}}
'

导入文件中的数据,当前目录下有个accounts.json文件(要求格式为上述批量操作的格式);

附上这个官方测试文件的下载:https://raw.githubusercontent.com/bly2k/files/master/accounts.zip

curl -XPOST 'localhost:9200/bank/account/_bulk?pretty' --data-binary "@accounts.json"

两种查出所有数据的命令(要注意,匹配结果若超过10则默认只传出前10条,可以通过size指定,见下文);

查询参数和返回数据都是json结构;

curl 'localhost:9200/bank/_search?q=*&pretty'
curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{"query": { "match_all": {} }
}'

查询所有数据,但只取出前5条和5~10条,from和size可以随意组合;

curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{"query": { "match_all": {} },"size": 5
}'
curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{"query": { "match_all": {} },"from": 5,"size": 5
}'

下面这个是根据字段(这里用的age)排序后取前3条数据(与sql一样,asc升序,desc降序);

curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{"query": { "match_all": {} },"size": 3,"sort": { "age": { "order": "asc" } }
}'

查询指定字段(姓名、邮箱);

curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{"query": { "match_all": {} },"_source": ["firstname", "lastname", "email"]
}'

上面都是用的match_all,使用match用来匹配一定的条件,下面是取出年龄为30的数据;

curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{"query": { "match": { "age": 30 } }
}'

地址中包含mill的数据;

地址中包含mill或者lane的数据;

地址中包含mill lane的数据;

curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{"query": { "match": { "address": "mill" } }
}'
curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{"query": { "match": { "address": "mill lane" } }
}'
curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{"query": { "match_phrase": { "address": "mill lane" } }
}'

bool组合查询条件,如下must是都满足,must_not是都不满足,should则是满足其中一项;

must、must_not、should这三个还可以组合;

curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{"query": {"bool": {"must": [{ "match": { "address": "mill" } },{ "match": { "address": "lane" } }]}}
}'
curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{"query": {"bool": {"must": [{ "match": { "age": "40" } }],"must_not": [{ "match": { "state": "ID" } }]}}
}'

使用filter过滤实现范围查询(年龄20~30);

curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{"query": {"bool": {"must": { "match_all": {} },"filter": {"range": {"age": {"gte": 20,"lte": 30}}}}}
}'

聚合(Aggregations),就是sql中的groupby,下面是根据年龄age分组,然后只显示第一条;

curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{"size": 0,"aggs": {"group_by_age": {"terms": {"field": "age","size": 1}}}
}'

aggs可以嵌套,分组后再计算,下面就是根据年龄分组后(取了前3条)求每个组的评价余额(balance);

curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{"size": 0,"aggs": {"group_by_age": {"terms": {"field": "age","size": 2},"aggs": {"average_balance": {"avg": {"field": "balance"}}}}}
}'

基础用法至此结束,更多的各种api就是进阶用法了;

转载于:https://www.cnblogs.com/toSeek/p/6094808.html

elasticsearch安装与基础用法相关推荐

  1. [网络安全提高篇] 一一九.恶意软件动态分析经典沙箱Cape的安装和基础用法详解

    终于忙完初稿,开心地写一篇博客. "网络安全提高班"新的100篇文章即将开启,包括Web渗透.内网渗透.靶场搭建.CVE复现.攻击溯源.实战及CTF总结,它将更加聚焦,更加深入,也 ...

  2. 理解Docker(1):Docker 安装和基础用法

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  3. kibana安装与基础用法

    来自官网,版本为4.5 下载rpm包并安装 wget -c https://download.elastic.co/kibana/kibana/kibana-4.5.4-1.x86_64.rpm rp ...

  4. RPA自动办公01——Uibot的安装和基础用法

    本期开始RPA的学习流程. RPA是机器人自动化流程的简写,目的在于减少重复性的劳动,而且上手很简单,无需编程就能用. 本系列使用Uibot 软件,其下载地址在:来也科技流程创造者(UiBot Cre ...

  5. 网络仿真工具Mahimahi的安装和基础用法

    目录 简介 安装 源码安装 apt-get安装 运行 切换拥塞控制算法 简介 Mahimahi是一个网络仿真工具,在Linux容器内外构建一条虚拟管道,并在这个管道中模拟网络时延.丢包和带宽变化.具体 ...

  6. mongod安装及基础用法

    1.前期准备 - 安装 - 配置环境变量 - 在安装盘根目录创建一个data文件夹,data下创建一个db文件夹 - 在cmd窗口输入 mongod 启动服务器 - 最小化窗口,再打开一个cmd,输入 ...

  7. 15分钟掌握Elasticsearch 8大核心概念与基础用法

    Elastic已经形成了一个较为庞大的生态,这个生态的核心就是Elasticsearch.初学者的重点就是如何快速地了解并使用Elasticsearch,本文总结了Elasticsearch的8大核心 ...

  8. [网络安全自学篇] 三.Burp Suite安装配置、Proxy基础用法及流量分析示例

    最近开始学习网络安全相关知识,接触了好多新术语,感觉自己要学习的东西太多,真是学无止境,也发现了好几个默默无闻写着博客.做着开源的大神.接下来系统分享一些网络安全的自学笔记,希望读者们喜欢. 上一篇文 ...

  9. Typora基础用法:pandoc安装,导入导出word文档,pdf文件。设置图片目录

    点击观看B站视频 Typora基础用法:pandoc安装,导入导出word文档,pdf文件.设置图片目录. 一. pandoc安装 首次安装完typora,是没法导入的,需要安装pandoc 选择[请 ...

最新文章

  1. 机器学习中的数学基础:(1)实际应用中矩阵特征值与特征向量的几何意义
  2. 科学家利用脑机接口让患者正常发声
  3. 插值法补齐缺失数据_关于数据清洗的常见方式
  4. SpringBoot2 集成 xxl-job任务调度中心
  5. python时间转绝对秒数_python时间时分秒与秒数的互相转换
  6. Kubernetes首爆严重安全漏洞,请升级你的Kubernetes
  7. 『深度应用』一文搞懂深度学习人脸识别模型开发流程
  8. ubuntu docker-compose: command not found
  9. java计算机毕业设计ssm办公耗材采购管理系统
  10. 用CMD批量ping ip地址
  11. 【第三课】Arcgis软件详细介绍
  12. MISRA C——The Motor Industry Software Reliability Association
  13. vs2015 社区版 + Qt 5.13.2 安装
  14. AI 语音交互开放平台的构建与演进
  15. matlab 采样开关,UPS单模块10kVA单相电压型SPWM逆变器的Simulink模型建立及仿真分析...
  16. 查看英伟达NVIDIA显卡型号
  17. c语言中应用程序错误,大师搞定win7系统提示应用程序错误0xc0000409的解决方案
  18. oracle组合单词是什么意思,oracle-bone是什么意思
  19. 视频深度学习:行为识别指南
  20. Opera全球CEO:计划近期推出中国版浏览器

热门文章

  1. 转:在RHEL5系统中搭建iSCSI存储服务器
  2. 新浪微博Anroid开发(二)
  3. No ExecutorFactory found to execute the application.
  4. flink的TimeCharacteristic(转载)
  5. sed删除空行,#开头的行,以及第一行
  6. ubuntu: ssh: connect to host ubuntu port 22: No route to host
  7. redis的各种数据集的列举功能
  8. 决策树(CART算法)针对中文文本分类
  9. 【监控】Grafana面板修改记录
  10. P4148 简单题(KDTree)