Elasticsearch 关键字与SQL关键字对比总结
由于Elasticsearch和MongoDB/Redis/Memcache一样,是非关系型数据库。而平常使用的MySql,Oracle,SQLServer 等为关系型数据库,二者有着本质的区别,Es查询语句使用的是DSL语言,关系式数据库使用的是T-SQL,虽然语言不同,但是有时候,一些功能还是有些相似的,为此,整理了一些ES与SQLServer中的功能关键字。
| SQL关键字 | Elastsearch 关键字 | 说明 | 对比示例链接或官方参考链接 |
| DataBase | Index | 数据库名称 | |
| Table | type | 表名称 | |
| Row | Document | 文档 | |
| Column | Field | 字段 | |
| T-SQL | Query DSL | ||
| _source | 返回指定的列 | ||
| SELECT * FROM table | GET http://… | 从……中查询 | |
| UPDATE table SET | PUT http://… | 从……中更新 | |
| Where | Query | 查询范围 |
|
| ORDER BY | Sort | 升序ASC、倒序Desc相同 | |
| = | term | 判断等值,精确值查找,用它处理数字(numbers)、布尔值(Booleans)、日期(dates)以及文本(text) | |
| In | terms | 限定一定范围 | |
| Not NULL | exists | ||
| IS NULL | missing | ||
| range | 限定查询范围,可用于数值或者日期限定 | ||
| > | gt | ||
| < | lt | ||
| >= | gte | ||
| <= | lte | ||
| bool | 组合过滤器 | https://www.elastic.co/guide/cn/elasticsearch/guide/current/combining-filters.html | |
| AND | must | 必须包含 | |
| NOT | must_not | 不能包含 | |
| OR | should | 至少有一个匹配 | |
| TOP | size | 指定返回多少条,ES默认是10条,搭配From可以实现翻页效果 | |
| collapse | 字段折叠 | https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-collapse.html | |
| Join | inner_hits | 嵌套子查询 | https://www.elastic.co/guide/en/elasticsearch/reference/5.5/search-request-inner-hits.html |

浙公网安备 33010602011771号