Elasticsearch是一个基于Lucene的搜索服务器,是用Java语言开发的,很多开发人员在开发的时候都会使用这个,那elasticsearch怎么用?下面来我们就来给大家讲解一下这方面的内容。
此处以电商系统商品搜索为例,使用kibana图形化操作界面,介绍ES的简单操作。
1.创建
用法:
PUT /index_name/type_name/id {}
例如:创建一个索引名称为shop_index,类型为productInfo,id为1的索引
PUT / shop_index / productInfo / 1 { "name": "HuaWei Mate8" , "desc": "Cheap and easy to use" , "price": 2500 , "producer": "HuaWei Producer" , "tags": [ "Cheap", "Fast" ] }
2.查询
用法:
GET /index_name/type_name/id
例如:查询id为1的商品信息
GET / shop_index / productInfo / 1 { "_index": "shop_index" , "_type": "productInfo" , "_id": "1" , "_version": 1 , "found": true , "_source": { "name": "HuaWei Mate8" , "desc": "Cheap and easy to use" , "price": 2500 , "producer": "HuaWei Producer" , "tags": [ "Cheap", "Fast" ] } }
3.修改
· 方法一:替换,通过ID替换,如果文档存在,则直接覆盖
用法:
PUT /index_name/type_name/id {}
例如:将商品价格修改为2400
PUT / shop_index / productInfo / 1 { "name": "HuaWei Mate8" , "desc": "Cheap and easy to use" , "price": 2400 , "producer": "HuaWei Producer" , "tags": [ "Cheap", "Fast" ] }
注意:替换某个文档时,需要带着文档中的所有字段,否则未带着的字段会丢失,切记!!!
· 方法二:通过ID更新部分字段
用法:
POST /index_name/type_name/id/_update {}
例如:将上述商品的价格改为2200
POST / shop_index / productInfo / 1 / _update { "doc": { "price": 2200 } }
4.删除
用法:
DELETE /index_index/type_index/id
例如:删除id为1的商品记录:
DELETE /shop_index/productInfo/1
elasticsearch怎么理解?
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。”Elasticsearch是分布式的,这意味着索引可以被分成分片,每个分片可以有0个或多个副本。每个节点托管一个或多个分片,并充当协调器将操作委托给正确的分片。再平衡和路由是自动完成的。“相关数据通常存储在同一个索引中,该索引由一个或多个主分片和零个或多个复制分片组成。一旦创建了索引,就不能更改主分片的数量。
Elasticsearch是一种流行的企业级搜索引擎,能够达到实时搜索,稳定,可靠,快速,安装使用方便,如果你正在使用Elasticsearch去不知道怎么使用,可以参考以上的简单使用方法哦!最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。
推荐阅读: