2011-11-06 144 views

回答

15

是的,您可以使用ElasticSearch作爲數據源以及索引。

默認情況下,發送到ElasticSearch系統的每個文檔都是索引,並且原始文檔也被存儲。這意味着只要您查詢ElasticSearch,您也可以檢索您編入索引的原始JSON文檔。

如果您有大量的文件和你想能夠檢索數據量較小然後當你可以使用繪圖API來設置「存儲」到「有」的具體領域,然後使用「田」鍵拔出您可能需要的特定字段。

在我的系統中我有地址自動完成,我只能獲取屬性的地址字段。這裏是我的系統的一個例子:

_search?q=FullAddress:main&fields:FullAddress 

然後,當用戶選擇地址我拉起整個JSON文檔(以及其他人)。

注:

  1. 像您可以在SQL你不能做的更新(更新匹配查詢增加一個屬性的所有項目,比方說)
  2. 你可以,但是,添加一個新的文件,並替換您要更新的ID中的現有ID。彈性搜索會在每個文檔上增加一個_version屬性,開發者可以使用該屬性來強制執行樂觀併發,但不會爲每個文檔保留單獨的版本歷史記錄。您只能檢索文檔的最新版本。
+0

從客戶端直接查詢Elasticsearch是否安全,並且如果我想跟蹤每個用戶的查詢,我將需要在服務器端(nodejs)實現ElasticJs? –