### 搜索 – 基本工具
到目前為止,我們已經學習了Elasticsearch的分布式NOSQL文檔存儲,我們可以直接把JSON文檔扔到Elasticsearch中,然后直接通過ID來進行調取。但是Elasticsearch真正的強大之處在于將混亂變得有意義——將大數據變成大量的信息。
這也是我們使用JSON文檔而不是無規則數據的原因。Elasticsearch不僅僅只是_存儲_文檔,同時它還_索引_了這些文檔以便搜索。**文檔中每一個字段都被索引并且可以被查詢**。不僅如此,在一個查詢中,Elasticsearch可以使用**所有**索引,并且以驚人的速度返回結果。這是傳統數據庫永遠也不能企及的。
這個_搜索_可以是:
- 類似于`年齡`、`性別`、`加入日期`等結構化數據,類似于在SQL中進行查詢。
- 全文搜索,查找整個文檔中匹配關鍵字的內容,并根據_相關性_
- 或者結合兩者。
雖然很多搜索操作是安裝好Elasticsearch就可以用的,但是想發揮它的潛力,你需要明白以下內容:
| 名字 | 說明 |
|-----|-----|
| _映射 (Mapping)_ | 每個字段中的數據如何被解釋 |
| _統計 (Analysis)_ | 可搜索的全文是如何被處理的 |
| _查詢 (Query DSL)_ | Elasticsearch使用的靈活強的查詢語言 |
上述的每一個內容都是一個大的主題,我們將會在之后的《深入搜索》中詳細探討它們。 本章中我們將針對先去介紹它們三個的基本概念 —— 已經足夠能幫助你理解搜索是如何運作的了。
我們將向你介紹`search`API的簡單實用方式。
> ### 測試數據
我們本章使用的文檔可以在下面的git中找到:[https://gist.github.com/clintongormley/8579281](https://gist.github.com/clintongormley/8579281)
你可以下載然后導入到你的shell中以方便你的學習使用。