1.介绍一下什么是elasticsearch?
elasticserach是一个基于lucene构建的开源、分布式、restful接口的全文搜索引擎。es还是一个分布式文档数据库,其中每个字段均是被索引的数据且可被搜索。
(1)es能够做什么? 比如电商搜索商品,收集日志等
(2)es的历史,shay是一个刚结婚不久的失业开发者,在他找工作过程中,为了给妻子构建一个食谱的搜索引擎,他开始构建一个早期的lucene
2.什么是全文搜索?
计算机搜索程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词出在文章的次数和位置(倒排索引)。
3.什么是倒排索引?
举个例子,假设有俩篇文章
文章1 : tom lives in beijing,i live in guangzhou too。
文章2 : he once lived in shanghai
关键词 文章号
guangzhou 1
he 2
i 1
live 1,2
shanghai 1
tom 1
个人理解:正常情况下 你使用的关系型数据库,你会根据id查询某个属性值,倒排呢? 倒排就是你根据属性值查找id,当然它并不是1对1的关系,我们还要知道字符位置,关键词位置,例如我们平时搜索问题 当搜索关键词的时候,搜索引擎会通常对关键词做特殊的显示。
4.索引的crud(先了解之后深入)
如何操作es?
首先我们下载es与Kibana
下载地址:https://www.elastic.co/cn/downloads/
解压jar包文件,然后进入es的bin目录启动即可,特点开箱即用
启动之后我们会看下如下图所示,表示启动成功
检查一下集群健康状态
创建索引(es会自动建立index和type,不需要提前创建,es会默认对每个document每个field都建立倒排索引,让其可以搜索)
创建索引脚本
PUT /shop/product/6
{
“name” : “heiren yagao”,
“desc” : “gaoxiao meibai”,
“price” : 25,
“producer” :“gaolujie producer”,
“tags”: [ “meibai”, “fangzhu” ]
}
查询脚本
get /shop/product/6
删除脚本
DELETE /shop/product/6
我们查询一下看看数据是否还存在?
修改脚本注意事项:必须带上所有的field,才能去进行信息的修改
PUT /shop/product/6
{
“name” : “heiren yagao111”,
“desc” : “gaoxiao meibai”,
“price” : 25,
“producer” :“gaolujie producer”,
“tags”: [ “meibai”, “fangzhu” ]
}
更新之后的数据