应用中的对象很少只是简单的键值列表,更多时候它拥有复杂的数据结构,比如包含日期,地理位置,另一个对象或者是数组。
总有一天你会想到把这些对象存储到数据库中。将这些数据保存到由行和列组成的关系数据库中,就好像是把一个丰富,信息表现力强的对象拆散了放入一个非常大的表格中:你不得不拆散对象以适应表模式(通常一列表示一个字段),然后又不得不在查询的时候重建它们。
es 是面向文档的,这意味着它可以存储整个对象或者是文档。然而他不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。
在es中,我们可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。这种理解数据的方式与以往完全不同,这也是 es 能够执行复杂的全文搜索的原因之一。