Elasticsearch学习
es学习笔记
棋啊_Rachel
自从厌倦于追寻,我已学会一命即中。自从一股逆风袭来,我已能抗拒八面来风驾舟而行。
展开
-
Elasticsearch检索高亮不正确,不精确问题
问题场景:搜索 “a” 高亮 "A8A",,,,,分词器:IK分词器确认分词结果:下图说明已经正确分词!确认高亮效果:换一种高亮器查询效果:总结:当高亮显示不精确的时候,要从以下两方面找问题:1.分词器是否分词准确2.高亮器是否满足你的要求,不满足换一种高亮器查看效果我之前原默认的高亮器(plain)不能满足要求,后来使用unified高亮器解决了高亮不精确的问题。...原创 2022-02-11 10:53:29 · 2994 阅读 · 1 评论 -
ik分词器支持标点符号,特殊字符分词(分词结果包含特殊字符)
需要修改ik分词插件源码github官网下载对应那本的ik源码包(徐泽自己需要的版本)下载好后,解压,用idea打开编辑源码在工具类(CharacterUtil.java)里,找到方法identifyCharType,加入以下代码:}else if (ub == Character.UnicodeBlock.GREEK // 希腊符号 // 希腊扩展符号 || ub == Character.UnicodeBlock.GREEK_EXTENDED // 拉丁字.原创 2022-02-10 16:57:24 · 2430 阅读 · 5 评论 -
Docker安装IK中文分词器
下载IK分词器:(可github下载,可以私信要)elasticsearch-analysis-ik-7.12.1.zip进入容器:在plugins目录下创建ik文件夹:退出容器:docker exec -it elasticsearch /bin/bashcd plugins/mkdir /usr/share/elasticsearch/plugins/ikexit拷贝下载好的ik分词器压缩包到ik文件夹中:docker cp /home/ubuntu/elastic原创 2022-02-10 12:14:53 · 1292 阅读 · 0 评论 -
docker安装Elasticsearch+Kibana+密码配置
一、安装elasticsearch1、拉取镜像docker pull elasticsearch:7.12.12、构建容器&运行docker run --name elasticsearch -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.12.13、修改配置1、进入容器&打开文件docker exec -it es bashcd configv原创 2022-02-09 17:54:19 · 2748 阅读 · 0 评论 -
Elasticsearch常用查询操作语句(一)
1.查询所有索引库:GET /_cat/indices2.查询映射:GET /summary_index/_mapping3.查询文档内容GET /summary_index/_search{ "query": { "dis_max": { "queries": [ { "match": { "title": "车辆识别摄像头" }}, { "match": { "sum.原创 2022-02-08 10:15:31 · 432 阅读 · 0 评论 -
ElasticSearch查询索引某个字段的分词语句
POST summary_index/_doc/1/_termvectors?fields=title.ngram原创 2022-02-08 09:56:17 · 530 阅读 · 0 评论 -
ElaticSearch自定义分词(已验证)
虽然Elasticsearch带有一些现成的分析器,然而在分析器上Elasticsearch真正的强大之处在于,你可以通过在一个适合你的特定数据的设置之中组合字符过滤器、分词器、词汇单元过滤器来创建自定义的分析器。一个分析器就是在一个包里面组合了三种函数的一个包装器, 三种函数按照顺序被执行:字符过滤器字符过滤器 用来整理一个尚未被分词的字符串。例如,如果我们的文本是HTML格式的,它会包含像<p>或者<div>这样的HTML标签,这些标签是我们不想索引...原创 2022-02-08 10:23:11 · 234 阅读 · 0 评论 -
ElasticSearch各种分词(Analyzer)模式总结
定义Analyzer是es中专门用来处理分词的组件,由三部分组成:Character Filters:针对原始文本的处理,例如去除html等Tokenizer:按照规则进行分词Token Filter:将切分的单词进行加工,例如去除修饰性单词等分词器种类StandardAnalyzer这是默认分词器,按词切分,将字母转换为小写,默认关闭终止词。使用方法如下:GET /_analyze{ "analyzer": "standard", "text": "It`s a g..原创 2022-01-26 17:51:45 · 1859 阅读 · 0 评论 -
Elasticsearch中ngram和edgengram分词器
1. Analysis 简介理解elasticsearch的ngram首先需要了解elasticsearch中的analysis。在此我们快速回顾一下基本原理:当一个文档被索引时,每个field都可能会创建一个倒排索引(如果mapping的时候没有设置不索引该field)。倒排索引的过程就是将文档通过analyzer分成一个一个的term,每一个term都指向包含这个term的文档集合。当查询query时,elasticsearch会根据搜索类型决定是否对query进行analyze,然后和倒排..原创 2022-01-14 15:48:25 · 2480 阅读 · 0 评论 -
ElasticSearch高亮显示不全场景(二)
ElasticSearch高亮问题原创 2022-01-13 13:06:20 · 1109 阅读 · 0 评论 -
java整合ElasticSearch内容高亮不全的原因
查询因高亮不全导致的内容确实添加下面两项配置,如果你要高亮如文字内容等有很多字的字段,必须配置,不然会导致高亮不全,文章内容缺失等 highlighter.fragmentSize(800000); //最大高亮分片数 highlighter.numOfFragments(0); //从第一个分片获取高亮片段 //设置高亮 HighlightBuilder highlighter = new HighlightBuilder(); ...原创 2022-01-12 18:01:07 · 1630 阅读 · 1 评论 -
java整合spring-boot-starter-data-elasticsearch4.0.0实现多字段查询,相关性排序,高亮显示,包含数组高亮,多字段高亮(实践版)
java整合spring-boot-starter-data-elasticsearch4.0.0实现多字段搜索,排序,高亮显示网上找了很多种方案一直调试不正确,最后自己琢磨半天才调试通过 ,代码实现效果图如下:调试已经通过!!!!!!!附上代码: @Override public PageResult fullTextSearch(FullTextParam param) { Integer pageNum = param.getPageNum();.原创 2022-01-11 18:19:14 · 1550 阅读 · 0 评论 -
ElasticSearch查询报错:type=illegal_argument_exception, reason=Result window is too large
Caused by: ElasticsearchException[Elasticsearch exception [type=illegal_argument_exception, reason=Result window is too large, from + size must be less than or equal to: [10000] but was [10155]. See the scroll api for a more efficient way to request larg原创 2022-01-07 18:04:56 · 6873 阅读 · 0 评论 -
修改设置elasticsearch一次查询的最大数据量
es默认查询的最大数量为10000条当超过一万条数据时会抛出异常,这是我们需要修改最大查询数量,如下:PUT summary_index/_settings?preserve_existing=true{ "max_result_window":"200000000"}原创 2022-01-07 17:47:21 · 4994 阅读 · 0 评论 -
jave查询elasticSearch过滤掉字段为null的数据
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); //按照分类进行过滤查询 if (attrType != null && attrType.length > 0) { //过滤精准匹配,用作查询具体的分类 boolQueryBuilder.must(QueryBuilders.termsQuery("attr_type", at.原创 2022-01-07 17:33:21 · 1043 阅读 · 0 评论 -
FunctionScoreQueryBuilder用法
@Override public SearchDto improveSearch(SearchDto searchDto) { String text = searchDto.getTerm(); String type = searchDto.getType(); HighSearchParam searchParam = searchDto.getSearchParam(); // 搜索请求对象 Sea...原创 2022-01-07 16:10:52 · 3970 阅读 · 0 评论 -
java spring boot2.3.0整合ElasticSearch踩坑记录总结
1.java整合ES插入数据是ID如何自定义生成?-----直接调用setId()方法自定义例如:index.setId("doc_place_type-attr_place_type-"+place.getPlaceName());2.elasticsearch批量删除数据操作,根据条件删除,根据查询到的结删除即使用DeleteByQuery删除 private void deleteBatch() { //3.删除es中所有设备类型的数据 R原创 2022-01-05 11:09:29 · 582 阅读 · 0 评论 -
Apache Kudu 对频繁更新数据场景下的大数据实时分析
kudu查询难题:Apache Kudu 对频繁更新数据场景下的大数据实时分析_weixin_42073629的博客-CSDN博客原创 2021-12-15 17:55:14 · 1525 阅读 · 0 评论 -
基于elasticsearch最新版本7.x的ngram分词场景分析
基于elasticsearch最新版本7.x的ngram分词场景分析_q7867401的博客-CSDN博客_elasticsearch ngram分词器原创 2021-12-15 15:01:17 · 1398 阅读 · 0 评论 -
ElasticSearch7.x版本踩坑记录:SpringBoot2.3.x整合ElasticSearch7.x(ElasticsearchRestTemplate)
使用ElasticSearch7.6.x 的时候,和7之前的版本有很大的不同,下面列举了一些踩坑记录:eg :StringTerms 类型转换失败问题,聚合查询自动拆分搜索关键字问题…等等(之后出现问题还会回头补坑)聚合查询语句# 聚合查询:match_phrase ---> 华为 二字不可以分开GET /skuinfo/_search{ "query": { "match_phrase": { "name": "华为" } }, "ag..转载 2021-12-10 17:04:42 · 1335 阅读 · 0 评论 -
springboot2.3整合elasticsearchRestTemplate查询结果按照相关度排序问题解决方案
@Overridepublic PageResult fullTextSearch(Integer pageNum, Integer pageSize, Long startTime, Long endTime, String attrType, String docType, String searc...原创 2021-12-10 16:58:09 · 2676 阅读 · 0 评论 -
ES7.12常规操作总结
https://blog.csdn.net/liu320yj/category_11046278.htmlElasticsearch是一个开源的高扩展的分布式、RESTful风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。本文使用Elasticsearch7.12.0版本,使用Postman作为客户端访问工具Elasticsearch数据格式Elasticsearch是面向文档型数据库,一条数据在此就是一个文档,与MySQL对比如下:ES里的Index可以看作是一个库,Types转载 2021-12-01 09:25:53 · 536 阅读 · 0 评论 -
Elasticsearch实现商品搜索(关键字查询 条件筛选 规格过滤 价格区间搜索 分页查询 排序查询 高亮查询
Elasticsearch实现商品搜索商品搜索 1、根据关键字查询 2、条件筛选 2.1 品牌筛选 2.1.1 需求分析 2.1.2 代码实现 2.2 规格过滤 2.2.1 需求分析 2.2.2 代码实现 2.3 价格区间查询 2.3.1 需求分析 2.3.2 代码实现 3 搜索分页 3.1 分页分析 3.2 分页实现 4 搜索排序 4.原创 2021-01-06 16:32:17 · 698 阅读 · 0 评论 -
java整合ElasticSearch导入数据到es中
实体类:利用注解建立实体类会自动根据实体类创建索引,不需要自己建立mappingpackage com.msic.mall.search.domain;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.experimental.Accessors;import org.springframework.data.annotation.Id;imp原创 2020-12-31 14:50:15 · 1203 阅读 · 0 评论 -
Docker搭建ELK日志系统全过程记录
elasticsearchdocker pull 127.0.0.1/msic/elasticsearch:7.3.2docker-compose.ymlversion: '3.1'services: elasticsearch: # restar: always image: 127.0.0.1/msic/elasticsearch:7.3.2 contain...原创 2020-05-06 16:56:59 · 237 阅读 · 0 评论 -
快速搭建ELK日志分析系统
一、ELK搭建篇官网地址:https://www.elastic.co/cn/官网权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html安装指南:https://www.elastic.co/guide/en/elasticsearch/reference/5.x/rpm.htm...原创 2020-04-29 15:06:23 · 286 阅读 · 0 评论 -
十亿级别数据量的es查询优化
面试题es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?面试官心理分析这个问题是肯定要问的,说白了,就是看你有没有实际干过 es,因为啥?其实 es 性能并没有你想象中那么好的。很多时候数据量大了,特别是有几亿条数据的时候,可能你会懵逼的发现,跑个搜索怎么一下5~10s,坑爹了。第一次搜索的时候,是5~10s,后面反而就快了,可能就几百毫秒。你就很懵,每个用户第一次访问都会...转载 2020-04-24 10:52:47 · 549 阅读 · 0 评论 -
Docker 安装 ES
拉取镜像docker pull msic/elasticsearch:7.3.2创建用户自定义网络 docker network create amynetwork运行ESdocker run --name elasticsearch --net amynetwork -p 9200:9200 -e "discovery.type=single-node" -d d7052f192d...原创 2020-03-16 11:47:06 · 264 阅读 · 0 评论