elasticsearch 是一个高度可扩展的开开源的分布式 RESTful搜索和分析引擎
它具有快速,近乎实时存储,搜索和分析大量数据
它通常作为一个基础引擎技术为公司的搜索中心项目所用
迄今为止最先进,性能最好,功能最全的搜索引擎库Lucene
分布式实时文件存储
支持横向扩展和纵向扩展。不需要程序去关注这些。
如果你的公司有电商项目,可以使用elasticsearch存储商品,目录和库存,为用户提供搜索和自动补全搜索关键词的功能。
如果你想收集数据和日志信息,并且通过这些数据找到趋势,统计信息,摘要和异常,可以使用Logstash(Elasticsearch/Logstash/Kibana 堆栈的一部分功能)去收集、解析和汇总数据。然后将这些数据放入elasticsearch中,我们就可以在elasticsearch挖掘我们想要的数据信息。
全商品中心的商品降价推送。平台可以抓取所有供应商的价格,将其推送的elasticsearch并使用倒排功能(Percolator)与用户的查询相匹配,匹配合适就可以推送给用户购买。
使用Kibana(Elasticsearch/Logstash/Kibana stack)对elasticsearch存储的数据自定义仪表板。使用elasticsearch的聚合功能对数据进行复杂的商业智能查询。
1:下载安装,运行,不多介绍,默认运行地址:http://localhost:9200/
2:安装Kibana,Kibana(sense)是一个和ES一起使用的开源分析和可视化平台。安装成功后启动 http://localhost:5601/app/sense
3:Kibana界面->dev_tools->控制台,demo如下:查询所有的数据
返回参数 | 含义 |
---|---|
took | 耗费时间(毫秒) |
time_out | 是否超时(默认无) |
_shards | 数据的分片,total:分片总数 successful:分片成功数 |
hits.total | 查询结果集数量(多少个document) |
hits.max_score | 文档与查询的匹配程度,越匹配分数越高 |
hits.hits | 返回文档数据详情,是一个数组,每个数组包含排名前十的文档 |
_index | 文档存储的地方 |
_type | 文档代表的对象的类 |
_id | 文档的唯一标识 |
_source | 存储的json字符串 |
java语言可以使用elasticsearch内置的两个客户端-节点客户端和传输客户端与es进行交互
其他的语言使用 RESTful API 通过端口和 Elasticsearch 进行通信
也可以直接通过curl命令直接和es交互
ES面向文档的存储方式。文档(document)是ES根对象(root object)序列化的数据,包含存储的数据(_source)和其他的对象信息。
ES中存储数据的行为就叫做索引,文档存在索引中,相当于关系数据库的DB
也可以不单独创建索引,直接建立文档,索引也直接创建
|参数 | 含义 | | ------------ | ------ | |hosjoy|索引名| |employee|类型名| |1|员工的id|
直接搜索,索引/类型/id
搜索一个类型的全部数据,id替换为_search
匹配文档数据内容(查询字符串搜索)q=
DSL(Domain Specific Language特定领域语言)语句查询
全文检索
直接可以根据索引id修改json值