因爲Elasticsearch和MongoDB/Redis/Memcache同樣,是非關係型數據庫。而日常使用的MySql,Oracle,SQLServer 等爲關係型數據庫,兩者有着本質的區別,Es查詢語句使用的是DSL語言,關係式數據庫使用的是T-SQL,雖然語言不一樣,可是有時候,一些功能仍是有些類似的,爲此,整理了一些ES與SQLServer中的功能關鍵字。html
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 |