ES使用和搜索中心的建设之基础介绍与语法

一:elasticsearch 是什么

  • elasticsearch 是一个高度可扩展的开开源的分布式 RESTful搜索和分析引擎
  • 它具有快速,近乎实时存储,搜索和分析大量数据
  • 它通常作为一个基础引擎技术为公司的搜索中心项目所用

二:为什么要学习elasticsearch

  • 迄今为止最先进,性能最好,功能最全的搜索引擎库Lucene
  • 分布式实时文件存储
  • 支持横向扩展和纵向扩展。不需要程序去关注这些。

三:elasticsearch几个使用场景

  • 如果你的公司有电商项目,可以使用elasticsearch存储商品,目录和库存,为用户提供搜索和自动补全搜索关键词的功能。
  • 如果你想收集数据和日志信息,并且通过这些数据找到趋势,统计信息,摘要和异常,可以使用Logstash(Elasticsearch/Logstash/Kibana 堆栈的一部分功能)去收集、解析和汇总数据。然后将这些数据放入elasticsearch中,我们就可以在elasticsearch挖掘我们想要的数据信息。
  • 全商品中心的商品降价推送。平台可以抓取所有供应商的价格,将其推送的elasticsearch并使用倒排功能(Percolator)与用户的查询相匹配,匹配合适就可以推送给用户购买。
  • 使用Kibana(Elasticsearch/Logstash/Kibana stack)对elasticsearch存储的数据自定义仪表板。使用elasticsearch的聚合功能对数据进行复杂的商业智能查询。

四:安装es和Kibana

  • 1:下载安装,运行,不多介绍,默认运行地址:http://localhost:9200/
  • 2:安装Kibana,Kibana(sense)是一个和ES一起使用的开源分析和可视化平台。安装成功后启动 http://localhost:5601/app/sense
  • 3:Kibana界面->dev_tools->控制台,demo如下:查询所有的数据


    img
返回参数 含义
took 耗费时间(毫秒)
time_out 是否超时(默认无)
_shards 数据的分片,total:分片总数 successful:分片成功数
hits.total 查询结果集数量(多少个document)
hits.max_score 文档与查询的匹配程度,越匹配分数越高
hits.hits 返回文档数据详情,是一个数组,每个数组包含排名前十的文档
_index 文档存储的地方
_type 文档代表的对象的类
_id 文档的唯一标识
_source 存储的json字符串

五:ES的通信

  • java语言可以使用elasticsearch内置的两个客户端-节点客户端和传输客户端与es进行交互
  • 其他的语言使用 RESTful API 通过端口和 Elasticsearch 进行通信
  • 也可以直接通过curl命令直接和es交互

六:数据

1:文档 (document)

ES面向文档的存储方式。文档(document)是ES根对象(root object)序列化的数据,包含存储的数据(_source)和其他的对象信息。

2:索引(indexing)
  • ES中存储数据的行为就叫做索引,文档存在索引中,相当于关系数据库的DB
  • img
  • 也可以不单独创建索引,直接建立文档,索引也直接创建
  • img
参数 含义
hosjoy 索引名
employee 类型名
1 员工的id
3:搜索
  • 直接搜索,索引/类型/id


    img
  • 搜索一个类型的全部数据,id替换为_search


    img
  • 匹配文档数据内容(查询字符串搜索)q=


    img
  • DSL(Domain Specific Language特定领域语言)语句查询


    img
  • 全文检索


    img
4:更新
  • 直接可以根据索引id修改json值
5: 删除
  • img
  • img

你可能感兴趣的:(ES使用和搜索中心的建设之基础介绍与语法)