当前位置: 首页 > wzjs >正文

政府网站设计模板google入口

政府网站设计模板,google入口,本地网站测试,旅游网站平台建设的方案Elasticsearch RESTful API入门:基础搜索与查询DSL 本文为Elasticsearch初学者详细解析RESTful API的核心操作与查询DSL语法,包含大量实战示例及最佳实践。 一、Elasticsearch与RESTful API简介 Elasticsearch(ES)作为分布式搜索…

Elasticsearch RESTful API入门:基础搜索与查询DSL

本文为Elasticsearch初学者详细解析RESTful API的核心操作与查询DSL语法,包含大量实战示例及最佳实践。

一、Elasticsearch与RESTful API简介

Elasticsearch(ES)作为分布式搜索分析引擎,其RESTful API是与集群交互的核心方式。通过HTTP协议实现:

  • ✅ 索引文档的CRUD操作
  • ✅ 执行复杂的搜索查询
  • ✅ 获取集群健康状况
  • ✅ 管理索引生命周期

核心概念速览

概念说明类比关系型数据库
索引(Index)文档的集合数据库的表
文档(Document)JSON格式的基本数据单元表中的一行记录
分片(Shard)索引的水平分割单元表分区
映射(Mapping)定义文档字段及类型表结构定义

二、基础API操作实战

1. 索引管理

# 创建索引
PUT /products
{"settings": {"number_of_shards": 3,"number_of_replicas": 1},"mappings": {"properties": {"name": {"type": "text"},"price": {"type": "float"},"category": {"type": "keyword"},"created_at": {"type": "date"}}}
}# 删除索引 (谨慎操作!)
DELETE /products### 2. 文档操作```bash
# 添加文档
POST /products/_doc/1001
{"name": "无线蓝牙耳机","price": 299.0,"category": "电子产品","created_at": "2023-05-10"
}# 获取文档
GET /products/_doc/1001# 更新文档
POST /products/_update/1001
{"doc": {"price": 259.0}
}# 删除文档
DELETE /products/_doc/1001

三、搜索API核心机制

1. 搜索端点

所有搜索请求发送到_search端点:

GET /products/_search

2. 两种查询方式对比

方式语法示例适用场景
URL参数查询?q=category:电子产品快速简单查询
DSL请求体查询JSON结构描述复杂查询逻辑生产环境推荐使用

四、查询DSL深度解析

1. 全文搜索 - match查询

GET /products/_search
{"query": {"match": {"name": {"query": "降噪耳机","operator": "and"}}}
}
  • 对文本 分词处理 ( “降噪耳机” → [“降噪”,“耳机”])

  • operator参数:and(必须全部包含) 或 or(包含任意词)

2. 精确匹配 - term查询

GET /products/_search
{"query": {"term": {"category.keyword": {"value": "电子产品"}}}
}
  • 注意使用.keyword子字段进行未分词的精确匹配

  • 适用于状态、标签等离散值字段

3. 范围查询 - range

GET /products/_search
{"query": {"range": {"price": {"gte": 200,"lte": 500}}}
}
  • 支持操作符:gt(>), gte(>=), lt(<), lte(<=)

  • 适用于数值、日期范围过滤

4. 布尔组合 - bool查询

GET /products/_search
{"query": {"bool": {"must": [{"match": {"name": "耳机"}}],"should": [{"term": {"category.keyword": "促销品"}},{"range": {"price": {"lte": 199}}}],"must_not": [{"term": {"brand.keyword": "A品牌"}}],"filter": [{"term": {"in_stock": true}}],"minimum_should_match": 1}}
}
子句作用是否影响相关性评分
must必须满足,相当于AND
should应该满足,相当于OR
must_not必须不满足,相当于NOT
filter必须满足,但不参与评分

5. 短语搜索 - match_phrase

GET /products/_search
{"query": {"match_phrase": {"description": {"query": "高清防水","slop": 3}}}
}

-要求词语 按顺序完整出现

-slop参数允许中间间隔的词数

五、搜索结果处理技巧

1. 分页与排序

GET /products/_search
{"from": 10,"size": 5,"sort": [{"price": {"order": "asc"}},{"_score": {"order": "desc"}}],"query": {...}
}

2. 字段过滤

GET /products/_search
{"_source": ["name", "price"],"query": {...}
}

3. 结果分析

典型搜索结果结构:

{"took": 15,                 // 查询耗时(ms)"timed_out": false,"hits": {"total": {"value": 42,            // 匹配总数"relation": "eq"},"max_score": 1.234,       // 最高得分"hits": [                 // 结果数组{"_index": "products","_id": "1001","_score": 1.234,"_source": {          // 原始文档"name": "无线蓝牙耳机","price": 299.0}}]}
}

六、最佳实践与避坑指南

  1. 精确匹配陷阱
     字符串字段默认同时创建textkeyword类型,精确匹配需用字段名.keyword

  2. 性能优化

"bool": {"filter": [   // 不参与评分的条件放filter{"range": {"created_at": {"gte": "now-30d/d"}}}]
}
  1. 深度分页问题
     避免使用from+size处理超过10,000条的结果集,改用search_afterscrollAPI
  2. 安全防护
     生产环境必须启用:

   - X-Pack安全模块

   - API密钥认证

   - 网络访问控制

七、学习资源推荐

  1. 官方文档:Elasticsearch Reference
  2. 实战工具:
    - Kibana Dev Tools
    - Postman
    - curl命令
    附录:常用查询速查表
查询类型用途示例
match全文搜索{“match”: {“title”: “ES”}}
term精确值匹配{“term”: {“status”: 1}}
range范围查询{“range”: {“age”: {“gte”: 18}}}
bool组合多个查询条件见第四节示例
match_phrase短语搜索{“match_phrase”: {“quote”: “to be or”}}

下集预告《Elasticsearch RESTful API入门:全文搜索实战》

http://www.dtcms.com/wzjs/134388.html

相关文章:

  • 怎么在赶集网上做招聘网站深圳网站制作哪家好
  • 番禺企业网站建设seo软文是什么意思
  • wordpress 二次验证失败长沙优化排名
  • 网站建设公司有多少家昆山网站建设公司
  • 怎么在百度知道做公司网站share群组链接分享
  • 河南单位网站建设百度收录网址提交
  • 品牌宣传网站建设搜索引擎的网址有哪些
  • 电商数据分析网站引流推广接单
  • 沈阳网站前端安卓优化大师官方版
  • 长安公司网站建设网络销售是什么
  • 中国做外贸的网站有哪些sem优化
  • 做图表的网站韶山seo快速排名
  • 做网站的公司利润html网页制作软件有哪些
  • 网站格式有哪些活动软文模板
  • 排名网站却搜不到新泰网站设计
  • 建个普通网站多少钱竞价托管sem服务
  • 做参茸产品的网站产品推广方法有哪些
  • 宁波网站推广平台推荐快速排名生客seo
  • vps建立多个网站营销方式有哪些
  • 网站建设怎么寻找客户怎么做盲盒
  • 杭州网站建设公司 4000262263腾讯广告联盟
  • 网站建设 需求苏州关键词优化怎样
  • 网站要精细是什么意思网站制作公司排名
  • 网站制作感受营销软文范文200字
  • 统计二级域名的网站流量有什么用外贸网站推广方法之一
  • 做外贸必须有公司网站么苏州seo关键词优化外包
  • 网站建设广告平台推广无锡网站优化
  • 网站建设心得总结商丘seo教程
  • 一加手机官网网站免费推广平台哪些比较好
  • 做网站负责人风险seo入门教程网盘