ElasticSearch
晴天小哥哥
追求卓越, 成功就会在不经意间追上你
展开
-
ElasticSearch(一)Docker安装ElasticSearch
ElasticSearch的官方中文文档地址是https://www.elastic.co/guide/cn/index.html1. 拉取镜像docker pull hub.c.163.com/library/elasticsearch:latest2.检查镜像docker images 如图则 没问题:3.检查无误后, 启动, 由于ES是java编写默...原创 2019-09-20 15:21:26 · 1169 阅读 · 0 评论 -
Elasticsearch(二) Elasticsearch中的Mapping映射, 更新mapping和添加mapping
一. 核心简单字段类型Elasticsearch 支持如下简单域类型:字符串:string 整数 :byte,short,integer,long 浮点数:float,double 布尔型:boolean 日期:date二. 复杂类型:多值字段很有可能,我们希望tag域包含多个标签。我们可以以数组(List)的形式索引标签:{ "tag": [ "search", "nosql" ]}Java表示 List<String> tag...原创 2020-08-20 16:55:04 · 1476 阅读 · 0 评论 -
Elasticsearch(二) Elasticsearch简介及核心概念倒排索引
一. 我到底能够使用 Elasticsearch 做什么?通过 Elasticsearch,您能够执行及合并多种类型的搜索(结构化数据、非结构化数据、地理位置、指标),搜索方式随心而变。先从一个简单的问题出发,试试看能够从中发现些什么。 作为一个分布式搜索服务1. 它可以进行快速进行全文搜索2. 可扩展性: 支持PB级别数据的存储,以及成百上千的集群3. 大数据处理, 数十亿行日志的聚合处理4. 通过相关度(_score)对所有内容搜索基于各项元素(从词频或新近度到热门度等)对搜索.原创 2020-08-20 16:37:22 · 531 阅读 · 0 评论 -
ElasticSearch(二)Docker安装ElasticSearch中的IK分词器
docker 安装ElasticSearch传送门1. 确认ES版本,去github上下载正确版本的IK分词器github地址:https://github.com/medcl/elasticsearch-analysis-ik然后通过下载页.下载zip包https://github.com/medcl/elasticsearch-analysis-ik/releases2. 通过docker命令将zip包复制到ES容器指定位置docker cp /tmp/elast...原创 2020-07-28 10:09:47 · 677 阅读 · 0 评论 -
ElasticSearch(三)ElasticSearch7.8.0集成Springboot
本文ES版本为7.8.0 兼容很多新版本,代码都经过测试, 无坑, 大家放心食用1. 准备环境工作安装ES环境, 安装IK分词器,见博文:https://rourou.blog.csdn.net/article/details/1010614082.MAVEN依赖由于es各个版本变化很大,所以在选择依赖的时候要尤为注意!!!我们可以通过spring的官方网站来进行查询版本对应的信息https://docs.spring.io/spring-data/elasticsearch/d..原创 2020-08-03 18:20:46 · 6610 阅读 · 5 评论 -
ElasticSearch(四)spring-data-elasticsearch @Field注解无效,最完美解决方案
前言我看了一大堆博客和资料大多是说这个spring的bug, 然后通过一个.json的配置文件去加载,我也是真的笑了, 本来注解就是方便开发,取消配置文件的功能, 结果解决方案却是本末倒置, 这里我奉献出最正确的解决方案一. 准备实例代码这是实体类代码,及其注解package com.gupao.springbootdemo.bean;import lombok.Data;import org.springframework.data.annotation.Id;import org原创 2020-07-31 11:13:53 · 17242 阅读 · 9 评论 -
ElasticSearch(五)常用查询关键字解读(match, term, range,terms)
本博文参考了官方文档:https://www.elastic.co/guide/cn/index.html虽然 Elasticsearch 自带了很多的查询,但经常用到的也就那么几个。1. match 查询无论你在任何字段上进行的是全文搜索还是精确查询,match查询是你可用的标准查询。如果你在一个全文字段上使用match查询,在执行查询前,它将用正确的分析器去分析查询字符串:{ "match": { "tweet": "About Search" }}Java代码...原创 2020-08-14 14:42:21 · 5811 阅读 · 0 评论 -
ElasticSearch(六)组合多查询(must, should, must_not, bool, filter)
组合多查询现实的查询需求从来都没有那么简单;它们需要在多个字段上查询多种多样的文本,并且根据一系列的标准来过滤。为了构建类似的高级查询,你需要一种能够将多查询组合成单一查询的查询方法。你可以用bool查询来实现你的需求。这种查询将多查询组合在一起,成为用户自己想要的布尔查询(Bool)。它接收以下参数:1.must文档必须匹配这些条件才能被包含进来。相当于sql中的 and2.must_not文档必须不匹配这些条件才能被包含进来。相当于sql中的 not3...原创 2020-08-17 16:17:52 · 27628 阅读 · 2 评论 -
ElasticSearch(七)高级排序(多级排序, 多值字段排序)
排序为了按照相关性来排序,需要将相关性表示为一个数值。在 Elasticsearch 中,相关性得分(_score)由一个浮点数进行表示,并在搜索结果中通过_score参数返回, 默认排序是_score降序。注: filter不参与评分.1. 按照字段排序(评分机制取消)只有字段排序会使评分机制取消.GET /_search{ "query" : { "bool" : { "filter" : { "term" : { "use...原创 2020-08-17 16:44:31 · 29808 阅读 · 5 评论 -
ElasticSearch(八)ElasticSearch与Mysql同步数据解决方案
ES数据和数据库数据如何同步整合?1. canel的通道是利用mysql的bin_log同步2. 通过消息队列同步,优势失败重试机制保证100%同步成功本文介绍通过RocketMq消息队列同步:首先是架构思路图:CRUD操作与我们的平时一样,但是在CRUD操作后我们会向RocketMq服务器事先定义好的Topic发送消息, 注意:Topic是同一个, 根据不同Tag来判断是什么类型的操作(新增, 删除, 更新), 废话不多说直接看代码github地址:1. 准备RocketM原创 2020-08-10 18:13:57 · 2642 阅读 · 3 评论 -
ElasticSearch(九) ElasticSearch使用教程之_score(评分)介绍
https://blog.csdn.net/paditang/article/details/79098830个人强烈推荐这篇文章, 讲的特别好转载 2020-04-08 19:39:06 · 1179 阅读 · 0 评论 -
ElasticSearch(十)SpringBoot集成ElasticSearch 复杂分页查询以及高亮显示,
一、帮助文档ES 官方文档https://www.elastic.co/guide/en/elasticsearch/reference/5.6/search-request-highlighting.htmlsample:https://es.xiaoleilu.com/010_Intro/30_Tutorial_Search.html二、业务流程:...原创 2020-04-08 19:34:14 · 3130 阅读 · 1 评论 -
ElasticSearch(十一)Java用ElasticSearch 利用搜索词分词搜索
需求:搜索词进行分词搜索例如: 搜索词为"意大利医生", 那么拆分匹配内容包含"意大利医生"或"意大利"或"医生"逻辑:首先我们采用ES中的BOOL搜索bool: must:所有分句都必须匹配,与 AND 相同。 must_not:所有分句都必须不匹配,与 NOT 相同。 should: 至少有一个分句匹配,与 OR 相同。我们使用should...原创 2020-03-25 16:59:51 · 4217 阅读 · 4 评论 -
Elasticsearch(十二)ik分词器中ik_max_word和 ik_smart的区别
学习过Solr或Elasticsearch的同学都知道IK分词器,它是一个针对中文的分词器。IK分词器地址:https://github.com/medcl/elasticsearch-analysis-ikIK分词器有两种分词模式:ik_max_word和ik_smart模式。1、ik_max_word会将文本做最细粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为“中华人民共...原创 2020-03-25 16:47:30 · 6346 阅读 · 2 评论 -
Elasticsearch(十三) ElasticSearch搜索附近的人
需求: 通过指定点搜索附近的人 , 要求可以过滤年龄, 结果按照距离进行排序, 并且展示她/他距离你多远本文参考:es官网文档:https://www.elastic.co/guide/cn/elasticsearch/guide/current/sorting-by-distance.htmlSpring官网文档:https://docs.spring.io/spring-data/elasticsearch/docs/4.0.3.RELEASE/reference/html/#new-f..原创 2020-08-21 10:23:06 · 2213 阅读 · 3 评论