登 录
注 册
< 数 据 库
MySQL
ClickHouse
ES
Doris
MongoDB
Redis
其他DB
ES安装与客户端
ES常见错误
ES常用命令
热门推荐>>>
中台架构
中台建设与架构
Hadoop
源码分析-NN启动(三)
HBase
HBased对接Hive
Linux
Nginx高可用
Python
数据导出工具
Flink
3分钟搭建Flink SQL测试环境
Kafka
Kafka对接Flume
深度学习
卷积神经网络
数据结构与算法
选择合适的算法
MySQL
数据备份恢复
计算机系统
信号量同步线程
Hive
Hive调优参数大全
其他框架
Azkaban Flow1.0与2.0
ClickHouse
表引擎-其他类型
技术成长
最好的职业建议
精选书单
技术成长书单—机器学习
技术资讯
数据在线:计算将成为公共服务
开发工具
IntelliJ IDEA 20年发展回顾(二)
系统工具
Mac命令行工具
虚拟化
内存虚拟化概述
云原生
云原生构建现代化应用
云服务
一文搞懂公有云、私有云...
Java
Spring Boot依赖注入与Runners
Go
Go函数与方法
SQL
SQL模板
当前位置:
首页
>>
ES
>>
ES安装与客户端
ES安装与客户端
2023-09-03 22:08:57 星期日 发表于北京 阅读:587
![](/static/images/article_images/1693749939.77314.jpeg) ES的安装非常简单,基本上下载解压启动就可以,可参照官网:https://www.elastic.co/guide/cn/elasticsearch/guide/current/running-elasticsearch.html 启动过程中如果报错,参照下一篇文章解决 #### ES与客户端交互 有两种交互方式: 1、各种语言的SDK(包括Python也有) 2、HTTP接口 下面用Python代码演示ES的连接、新建文档、更新文档、查询文档等操作 ```python import json import requests HOST = "172.16.91.3" PORT = 9200 HEADERS = {"Content-Type": "application/json"} BASE_URL = f"http://{HOST}:{PORT}" # 获取所有文档数 def docs_count(): # ?pretty是为了让返回结果格式化显示,该参数可不加 url = BASE_URL + "/_count?pretty" data = {"query": {"match_all": {}}} response = requests.get(url, headers=HEADERS, data=json.dumps(data, ensure_ascii=True)) print(response.text) ``` 输出结果 ```json { "count" : 3, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 } } ``` #### 创建文档 ```python # 创建/创建文档 def docs_put(): # megacorp 是自定义的文档库(索引名称) # employee 是类型名称 # 1 是文档ID(特定的雇员ID) url = BASE_URL + "/megacorp/employee/5" # 如果文档已经存在,则更新,否则是创建 data = { "first_name": "John", "last_name": "Smith", "age": 25, "about": "I love to go rock climbing", "interests": ["sports", "music"] } response = requests.post(url, headers=HEADERS, data=json.dumps(data, ensure_ascii=True)) print(response.text) ``` #### 删除文档 ```python3 # 删除文档 def docs_delete(): url = BASE_URL + "/megacorp/employee/5" response = requests.delete(url, headers=HEADERS) print(response.text) ``` #### 查询文档 ```pyhton3 # 查询文档 def docs_query(): # ?pretty是为了让返回结果格式化显示,该参数可不加 url = BASE_URL + "/megacorp/employee/1?pretty" response = requests.get(url, headers=HEADERS) print(response.text) ``` #### 搜索所有文档 ```python3 # 搜索所有雇员(文档) def search_all(): url = BASE_URL + "/megacorp/employee/_search?pretty" response = requests.get(url, headers=HEADERS) print(response.text) ``` #### 全文搜索 ```python3 # 全文检索:搜索所有喜欢攀岩(rock climbing)的员工 def search_full(): url = BASE_URL + "/megacorp/employee/_search?pretty" data = { "query": { "match": { "about": "rock climbing" } } } response = requests.get(url, headers=HEADERS, data=json.dumps(data, ensure_ascii=True)) print(response.text) ```