红河哈尼族彝族自治州网站建设_网站建设公司_Linux_seo优化
2026/1/17 19:51:15 网站建设 项目流程

Elasticsearch 入门指南 - 教程

2026-01-17 19:45  tlnshuju  阅读(0)  评论(0)    收藏  举报

Elasticsearch 入门指南

一、什么是 Elasticsearch?

Elasticsearch(简称 ES)是一个开源的分布式搜索引擎,专门用于:

核心优势

二、核心概念图解

1. 基本术语

概念类比说明
索引(Index)数据库数据容器(如:products
文档(Document)表行基本数据单位(JSON格式)
字段(Field)表列文档的属性(如:name, price
分片(Shard)分区数据分割单元(提高并行能力)

2. 与传统数据库对比

关系型数据库
数据库Database
表Table
行Row
列Column
Elasticsearch
索引Index
文档Document
字段Field

三、快速安装(单机版)

  1. 下载 Elasticsearch(需 Java 环境):
https://www.elastic.co/downloads/elasticsearch
  1. 解压并启动:
tar -xzf elasticsearch-8.10.2-linux-x86_64.tar.gz
cd elasticsearch-8.10.2/bin
./elasticsearch
  1. 验证运行:
http://localhost:9200

返回JSON信息表示成功!

四、基础操作入门

1. 创建索引(类似建表)

# 创建商品索引
PUT /products
{
"settings": {
"number_of_shards": 1# 分片数(入门用1个即可)
},
"mappings": {
"properties": {
"name": {"type": "text"},
"price": {"type": "float"},
"category": {"type": "keyword"}
}
}
}

2. 添加文档(插入数据)

# 添加一个商品
POST /products/_doc/1
{
"name": "无线蓝牙耳机",
"price": 299.0,
"category": "电子产品"
}
# 批量添加(推荐)
POST /products/_bulk
{"index":{}}
{"name":"运动水杯","price":89.9,"category":"生活用品"}
{"index":{}}
{"name":"编程书籍","price":59.0,"category":"图书"}

3. 搜索文档

# 简单搜索(查找所有)
GET /products/_search
# 条件搜索(查找价格低于100的商品)
GET /products/_search
{
"query": {
"range": {
"price": {"lte": 100}
}
}
}

五、实战案例:商品搜索系统

场景需求

1. 创建增强版商品索引

PUT /shop_products
{
"mappings": {
"properties": {
"name": {
"type": "text",
"analyzer": "ik_smart"# 中文分词
},
"price": {"type": "float"},
"category": {"type": "keyword"}, # 精确匹配
"stock": {"type": "integer"}
}
}
}

2. 添加测试数据

POST /shop_products/_bulk
{"index":{}}
{"name":"Apple iPhone 14","price":5999,"category":"手机","stock":100}
{"index":{}}
{"name":"华为MateBook笔记本","price":6899,"category":"电脑","stock":50}
{"index":{}}
{"name":"小米蓝牙音箱","price":199,"category":"数码配件","stock":200}
{"index":{}}
{"name":"耐克运动鞋","price":899,"category":"鞋服","stock":80}

3. 实现综合搜索

GET /shop_products/_search
{
"query": {
"bool": {
"must": [
{"match": {"name": "蓝牙"}}# 名称包含"蓝牙"
],
"filter": [
{"range": {"price": {"gte": 100, "lte": 500}}}, # 价格100-500
{"term": {"category": "数码配件"}}# 分类精确匹配
]
}
}
}

4. 搜索结果解析

{
"took": 15,// 耗时15毫秒
"hits": {
"total": {
"value": 1,// 找到1个匹配商品
"relation": "eq"
},
"hits": [
{
"_source": {
"name": "小米蓝牙音箱",
"price": 199,
"category": "数码配件",
"stock": 200
}
}
]
}
}

六、常见使用场景

  1. 网站搜索
GET /articles/_search
{
"query": {"match": {"content": "人工智能"}}
}
  1. 日志分析
# 统计错误日志数量
GET /app-logs/_search
{
"query": {"term": {"level": "ERROR"}},
"size": 0# 不返回具体文档
}
  1. 自动补全
GET /products/_search
{
"suggest": {
"product_suggestion": {
"prefix": "蓝",
"completion": {"field": "name_suggest"}
}
}
}

七、学习路径建议

  1. 掌握基础操作(CRUD+搜索)
  2. 理解分词器(中文用 ik 插件)
  3. 学习组合查询(bool 查询)
  4. 探索聚合分析(统计计算)
  5. 部署集群生产环境

新手提示

  • 从单机版开始学习
  • 使用 Kibana 控制台操作(更直观)
  • 实际项目从简单搜索开始
  • 官方文档是最好的学习资源

Elasticsearch 是现代应用必备的搜索技术,通过本文案例您已掌握基础操作。下一步可以尝试部署实际项目,体验其强大的搜索分析能力!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询