由于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 |