Elasticsearch 常用功能
Elasticsearch适合海量数据(PB级别的)搜索,最多延迟1秒,实施高可用。现在公司里的商品信息、门店信息都使用ES了。
-
Elasticsearch常用术语
- Index索引:可以理解为MYSQL里的数据库
- Type索引中的数据类型:可理解为mysql里的表table
- json格式的Documetn文档数据:就是存在ES里的一条数据,type里存可存放多个文档
- Field字段,文档里的属性,例如性能年龄;mapping描述相关属性
- Query DSL查询语法
- index索引(数据库)-->type类型(表)-->document记录-->field 字段 mapping字段的描述
- 常用查询语言:ES 支持RESfulweb接口,可以用json格式对文档进行get/post/put/delete(查询/增加 修改/删除);es是基于索引来搜索的,倒排索引
-
操作入口
-
Elasticsearch的增删改查
-
新增索引、查看索引
#match_all查询所有记录;includes显示指定的属性
match为分词查找,可以找到skuName里有 ”鸡蛋“、”鸡“、或”蛋” 的记录
#match_phrase短语匹配查询,先分词 分词后位置 不变进行匹配
term精确查询 并不知道分词器的存在,指定一个关键词;term指定多个关键词;from,size控制返回的数量;from从第几个文档开始(索引从0开始);size结果取几个文档
-
更新记录:
-
根据id整条覆盖
put /索引名/_doc/{id} 入参为”_source”的整个值域 如下所示
-
根据id 修改部分属性
POST /索引名/_update/{id} 入参里的doc内容为”_source”的值域里的某个属性
-
根据查询条件更新
query通过查询条件指定要更新的文档范围,script是要执行的脚本内容,"source":"ctx._source.skuName ='XXX' " 其中skuName是要更新的字段名