ES在搜索和数据分析中的应用越来越广泛,在之前项目中对ES的使用有些心得,最近有不少朋友和同事都问到了ES,刚好最近也有些时间,所以打算通过8~10篇文章介绍下ES.(其实我也不知道最终会写下多少篇),为了保持阅读的连贯性,可以先看前面几篇文章:
ES搜索引擎入门+最佳实践(一)_flame.liu的博客-优快云博客
ES搜索引擎入门+最佳实践(二)_flame.liu的博客-优快云博客
ES搜索引擎入门+最佳实践(三)_flame.liu的博客-优快云博客
一. 概要
先归纳前面提到过和本篇将要提到的几个命令和操作.
命令 | 说明 |
PUT | 相当于SQL中的增加信息 |
GET | 相当于SQL中的查询 |
POST | 相当于SQL中的修改 |
DELETE | 相当于SQL中的删除 |
上面表格中对命令的解释并不够严谨,但是我们可以先这样做类比,这样便于了解,后面再一步步深入理解.
操作 | 说明 |
_source | 在查询时设置一个数组,用于指定需要查找的字段 |
_count | 在查询时设置ES返回匹配查询条件的结果数量 |
_search | 执行索引的查询操作 |
_explain | 查看搜索时匹配的详情 |
_close / _open | 关闭索引, 打开索引 |
_doc | 表示进行文档操作 |
_aliases |
给索引取别名 |
_mapping | 操作索引中的映射 |
_bulk | 进行批量操作 |
_index | 用于指定索引名称 |
_update | 执行更新操作 |
先对上面的内容有个初步的印象有利于开始后面的学习.本篇文章主要介绍ES的搜索功能.包括搜索辅助功能,搜索匹配功能以及搜索排序.
本篇文章将用下面的这个索引作为案例:
PUT /goods
{
"mappings": { //映射
"properties": { //属性
"title":{ //将title定义为多字段
"type": "text",
"fields": {"title_key":{"type":"keyword"}} //title将建立text类型和keyword类型两个索引
},
"price":{"type": "double"}, //价格
"stockNum":{"type": "integer"}, //库存