ElasticSearch 入门与整合

本文介绍了Elasticsearch与Solr的优缺点对比,提供了Elasticsearch的Docker安装方法,详细解释了如何入门Elasticsearch,包括文档序列化、索引操作、检索功能,并探讨了与SpringBoot的Jest集成。
摘要由CSDN通过智能技术生成

文章目录


概述

之前本人只简单使用过 Solr,而 Elasticsearch 与 solr 相比:
solr
优点

  • solr有一个更大、更成熟的用户、开发和贡献者社区
  • 支持添加多种格式的索引,如:HTML、PDF、微软 Office 系列软件格式以及 JSON、XML、CSV 等纯文本格式
  • Solr比较成熟、稳定
  • 不考虑建索引的同时进行搜索,速度更快

缺点

  • 建立索引时,搜索效率下降,实时索引搜索效率不高

Elasticsearch
优点

  • Elasticsearch是分布式的。不需要其他组件,分发是实时的,被叫做”Push replication”
  • Elasticsearch 完全支持 Apache Lucene 的接近实时的搜索
  • 处理多租户(multitenancy)不需要特殊配置,而Solr则需要更多的高级设置
  • Elasticsearch 采用 Gateway 的概念,使得完备份更加简单
  • 各节点组成对等的网络结构,某些节点出现故障时会自动分配其他节点代替其进行工作

缺点

  • 还不够自动,不适合当前新的Index Warmup API (参考:http://zhaoyanblog.com/archives/764.html)

安装
使用 docker 进行安装,这里记录下启动命令的参数(默认初始占用2G堆内存空间):

docker run -e ES_JAVA_OPTS="-Xms256M -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name [容器名] [镜像id]

访问:http://192.168.43.244:9200,看到如下页面则为成功:


入门

同样我们可以参考官方中文文档:Elasticsearch 权威指南

关于文档
Elasticsearch 使用 JSON 作为文档的序列化格式,如一个 user 对象:

		{
   
		    "email":      "john@smith.com",
		    "first_name": "John",
		    "last_name":  "Smith",
		    "info": {
   
		        "bio":         "Eco-warrior and defender of the weak",
		        "age":         25,
		        "interests": [ "dolphins", "whales" ]
		    },
		    "join_date": "2014/05/01"
		}

关于索引

  • 作为动词:存储数据到 Elasticsearch 的行为叫做 索引
  • 作为名词:一个 索引 类似于传统关系数据库中的一个 数据库 ,是一个存储关系型文档的地方,如下图:
    在这里插入图片描述
    在这里插入图片描述
    知道了上面的概念,我们就可以来在 Elasticsearch 中操作文档数据:
  • 索引一个文档: 发送 PUT 请求到 http://192.168.43.244:9200/megacorp/employee/1,并带上 JSON 文档数据,就会保存在相应索引下 id 为 1 的位置。
  • 检索一个文档: 发送 GET 请求到 http://192.168.43.244:9200/megacorp/employee/1,即可获得 JSON 文档数据。
  • 同样的,可以使用 DELETE 命令来删除文档,以及使用 HEAD 指令来检查文档是否存在。如果想更新已存在的文档,只需再次 PUT 。

不同的检索功能:

  • 轻量搜索:/megacorp/employee/_search?q=last_name:Smith。
  • 复杂搜索:使用查询表达式搜索,match 查询、范围查询 filter…。
		{
   
		    "query" : {
   
		        "bool": {
   
		            "must": {
   
		                "match" : {
   
		                    "last_name" 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值