ES的实战

#ES #实战 #Bulk #查询

总结
  • Bulk API 支持批量写入,比逐条写入快很多
  • term 字段支持精确、前缀、通配符、正则、ids 等多种查询方式
  • bool 查询组合 must/filter/must_not/should,filter 不打分性能更好

1. 批量导入数据

用 Bulk API 批量写入,详细使用见 文档的操作

curl -X POST "localhost:9200/_bulk" \
  -H 'Content-Type: application/json' \
  --data-binary @test.json

@test.json 是本地文件,Bulk 格式每两行一组(操作行 + 数据行):

{ "index": { "_index": "nba", "_id": "1" } }
{ "name": "哈登", "team_name": "火箭", "position": "得分后卫" }
{ "index": { "_index": "nba", "_id": "2" } }
{ "name": "库里", "team_name": "勇士", "position": "控球后卫" }

2. term 字段查询

详细 body 示例见 ES查询body合集,这里汇总关键点:

3. 范围查询

4. bool 查询

5. 排序与聚合

6. 面试相关

ES 的实战问题在面试中很常见,如果你被问到批量写入或查询优化,可以重点准备 ES面试题 中的写入性能优化、查询性能优化相关问题。