Elasticsearch 笔记
创建索引
在 Elasticsearch 7 中,可以使用 RESTful API 来创建索引。以下是使用 cURL 命令发送 HTTP 请求来创建索引的示例:
curl -XPUT "http://localhost:9200/artice
添加映射
要为索引添加字段映射,您可以使用 Elasticsearch 的 Mapping API。
curl -XPUT "http://localhost:9200/索引名称/_mapping" -H 'Content-Type: application/json' -d'
{
"properties": {
"content": {
"type": "text"
},
"title": {
"type": "keyword"
}
}
}
'
字段类型
Elasticsearch 提供了多种字段类型,以适应不同类型的数据。以下是一些常用的字段类型:
文本类型(Text):用于全文搜索和分析文本数据。
关键字类型(Keyword):用于精确匹配和聚合关键字数据。
数值类型(Numeric):包括整数型、浮点型和日期型等。
整数型:用于存储整数数据,如 long、integer、short 和 byte。
浮点型:用于存储浮点数数据,如 double 和 float。
日期型:用于存储日期和时间数据,如 date。
布尔类型(Boolean):用于存储布尔值,即 true 或 false。
二进制类型(Binary):用于存储二进制数据。
地理位置类型(Geo):用于存储地理位置坐标。
地理点类型(Geo Point):用于存储经纬度坐标。
地理形状类型(Geo Shape):用于存储更复杂的地理形状数据。
IP 类型(IP):用于存储 IPv4 或 IPv6 地址。
附件类型(Attachment):用于处理富文本附件数据。
查询索引
要查询 Elasticsearch 中的索引,可以使用 RESTful API 发送 GET 请求。以下是一个查询索引的示例:
curl -XGET "http://localhost:9200/索引名称"
其中,localhost 是 Elasticsearch 服务器的主机名或 IP 地址,9200 是 Elasticsearch 默认的 HTTP 端口号,索引名称 是您要查询的索引的名称。
发送上述请求后,Elasticsearch 将返回与该索引相关的信息,包括索引的设置、映射和统计数据等。
如果您只想查询索引的某些特定字段或属性,请使用 _settings、_mappings 或 _stats 等路径。例如,要获取索引的映射设置,可以发送以下请求:
curl -XGET "http://localhost:9200/索引名称/_mappings"
类似地,您可以根据具体需求使用适当的路径来查询不同的索引信息。请注意,路径前的斜杠 / 是必需的。
{
"artice": {
"mappings": {
"properties": {
"content": {
"type": "text"
},
"title": {
"type": "keyword"
}
}
}
}
}
获取所有索引
获取所有的索引,您可以使用 Elasticsearch 的 _cat API 中的 indices 端点。以下是一个示例:
curl -XGET "http://localhost:9200/_cat/indices?v"
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .geoip_databases cz2txzTAQ52O3jIxeR4ftw 1 0 38 5 37.1mb 37.1mb
yellow open my_index HLBQQsoORlKzNnJ5SmMOSw 2 1 4 0 17.2kb 17.2kb
索引添加数据
要向 Elasticsearch 索引添加一条数据,您可以使用索引的 index API。以下是一个示例,演示如何使用 cURL 命令将数据添加到指定的索引中:
curl -XPOST "http://localhost:9200/索引名称/_doc" -H 'Content-Type: application/json' -d'
{
"字段1": "值1",
"字段2": "值2",
"字段3": "值3"
}
'
通过上述请求,新的文档将被添加到指定的索引中,并自动生成唯一的文档 ID。
请确保请求中的数据与索引的字段映射相匹配,否则可能会导致错误或数据丢失。
索引查询数据
要查询 Elasticsearch 索引中的数据,您可以使用 search API。以下是一个示例,展示了如何使用 cURL 命令查询指定索引的所有文档:
curl -XGET "http://localhost:9200/索引名称/_search" -H 'Content-Type: application/json' -d'
{
"query": {
"match": {
"title": "新华时评:做抗洪救灾重建家园的主人"
}
}
}
'
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 0.6931471,
"hits": [
{
"_index": "artice",
"_type": "_doc",
"_id": "do973YkB4E-sn8Z_aVhf",
"_score": 0.6931471,
"_source": {
"content": "当前,京津冀黑吉等省市广大干部群众仍在同暴雨洪灾作顽强斗争。无论是抗洪抢险还是灾后重建,在各级党委政府的有力组织下,人民群众不畏艰险、守望相助,迸发出强烈的担当精神和主人翁意识。",
"title": "新华时评:做抗洪救灾重建家园的主人"
}
}
]
}
}
删除索引数据
要从 Elasticsearch 索引中删除数据,您可以使用 delete API。以下是一个示例,演示如何使用 cURL 命令删除指定索引中的文档:
curl -XDELETE "http://localhost:9200/索引名称/_doc/文档ID"
更新索引数据
要更新 Elasticsearch 索引中的数据,您可以使用 update API。以下是一个示例,演示如何使用 cURL 命令更新指定索引中的文档:
curl -XPOST "http://localhost:9200/索引名称/_update/文档ID" -H 'Content-Type: application/json' -d'
{
"doc": {
"字段1": "新值1",
"字段2": "新值2"
}
}
'
在上述示例中,您需要将 localhost 替换为 Elasticsearch 服务器的主机名或 IP 地址,9200 替换为 Elasticsearch 默认的 HTTP 端口号,索引名称 替换为要更新的文档所在的索引名称,文档ID 替换为要更新的文档的唯一标识符。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗