从和数据库的关系开始
相同点:
1.都是“数据库->表格->字段->行”的形式
2.数据库的功能大多都支持:查询,新增,删除,聚合,排序等
不同点:
1.可以无需预先定义表格,数据同步时根据默认规则创建mapping(对应数据库的表结构),当然也可以自定义mapping
2.存储的是JSON格式的文档
3.主要致力于文档检索,可以支持多关键字、近义词的检索
4.可根据文档匹配度进行排序
为什么使用ElasticsSearch?
1.全文搜索、优先度匹配
2.对分布式的支持,负载均衡
3.搜索大数据的性能
4.强大的聚合功能,可以做各种统计
REST风格的API
GET /megacorp/employee/1
响应
{
"_index" : "megacorp", // 索引,相当于数据库
"_type" : "employee", // 类别,相当于表格
"_id" : "1", // 主键,相当于表格的id字段
"_version" : 1, // 版本,每次修改时+1
"found" : true, // 是否查询到结果
"_source" : { // 查询的结果
"first_name" : "John",
"last_name" : "Smith",
"age" : 25,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}
}