Elasticsearch
文章平均质量分 70
es数据库的安装与使用过程中遇到的问题
徐州蔡徐坤
学习时长两年半,喜欢唱跳rap篮球的java后端开发
展开
-
ES的基本组成和es的优势以及搜索写入原理
本文依照倒叙的方式介绍什么是elasticsearch,包含es的基本组成和es的优势以及写入搜索的流程首先引入一个问题,如何从三段文本中快速找到包含关键词’caixukun’的记录?最直接的思路就是遍历所有的文本记录,然后判断是否包含关键词,最后返回文本的id如果记录的条数有上亿条呢?或者十亿?百亿?继续采用最初的思路全部遍历,先不说速度与乌龟相比如何,有没考虑过计算机的感受?cpu呢?内存呢?磁盘io?原创 2024-07-22 08:00:00 · 1057 阅读 · 0 评论 -
Elasticsearch实现检索词自动补全(检索词补全,自动纠错,拼音补全,繁简转换) 包含demo
下面的请求定义了一个名为 “book” 的 Elasticsearch 索引,其中包含一个 具有 “text” 数据类型和 “standard” 分析器且名为 “title” 的字段。此字段用于处理书籍标题的文本数据。定义了名为 “suggest” 的 “completion” 子字段,用于支持实时搜索建议的自动补全功能。原创 2023-10-15 16:57:00 · 2183 阅读 · 0 评论 -
Elasticsearch Dump的详细安装和迁移es索引和数据的使用教程
如果希望将数据导出到本地文件而不是通过编程方式处理,可以考虑使用Elasticsearch的导出工具,如(Elasticdump)或。原创 2023-07-04 20:31:16 · 5586 阅读 · 2 评论 -
Elasticsearch“滚动查询“(Scrolling)的机制的与Java使用ES Client 调用滚动查询
ES在进行普通的查询时,默认只会查询出来10条数据。我们通过设置es中的size可以将最终的查询结果从10增加到10000。如果需要查询数据量大于es的翻页限制或者需要将es的数据进行导出又当如何?Elasticsearch提供了一种称为`"滚动查询"(Scrolling)`的机制,用于处理大型数据集的分页查询。滚动查询允许在持续的时间段内保持一个活动的搜索上下文,然后使用滚动ID进行`迭代`检索结果。滚动查询和关系型数据库中的游标有点类似,因此也叫`游标查询`原创 2023-06-22 13:19:00 · 4454 阅读 · 0 评论 -
Elasticsearch基础学习-常用查询和基本的JavaAPI操作ES
关于ES数据库的和核心倒排索引的介绍一、Elasticsearch概述简介关于全文检索引擎关系型数据库的全文检索功能缺点全文检索的应用场景Elasticsearch 应用案例二、Elasticsearch学习准备安装下载关于es检索的核心-倒排索引正向索引(forward index)倒排索引(inverted index)三、使用kibana执行ES的操作索引创建全部索引查询单个索引查询删除索引创建文档Dynamic mapping 动态映射的说明指定id创建文档主键查询GET方式全查询POST方式全查询原创 2023-05-17 23:20:53 · 3070 阅读 · 2 评论 -
Elasticsearch painless脚本教程(包含Java API和SpringDataElasticsearch调用脚本)
本文主要介绍了Elasticsearch painless脚本的常用场景和写法,通过kibana示例操作。最后包含Java API和SpringDataElasticsearch调用脚本的代码原创 2023-04-22 16:32:20 · 2660 阅读 · 0 评论 -
canal中es7映射字段和数据同步使用总结踩坑
sql映射说明sql支持多表关联自由组合, 但是有一定的限制:Elastic Search的mapping 属性与sql的查询值将一一对应(不支持 select *), 比如: select a.id as _id, a.name, a.email as _email from user, 其中name将映射到es mapping的name field, _email将 映射到mapping的_email field, 这里以别名(如果有别名)作为最终的映射字段. 这里的_id可以填写到配置文件的 _id原创 2023-03-02 10:20:49 · 1187 阅读 · 0 评论 -
ES启动报错:Caused by: java.net.SocketException: No buffer space available (maximum connections reached?)
线上服务的es突然挂掉导致网站无法正常访问,看了下是es服务停止了,于是重启后出现了如下报错,对于报错信息的重点关注:Caused by: java.net.SocketException: No buffer space available (maximum connections reached?): connect看报错信息是连接数太多,耗尽了某种资源。查看当前所有的连接,执行命令:netstat -ano ,发现大量的TCP连接。尤其是应用的80端口的连接数达到了65535,是应用中调用连接过多原创 2023-02-28 15:13:05 · 1514 阅读 · 0 评论 -
canal实时同步mysql数据到elasticsearch(部署,配置,测试)(一)
canal基于MySQL数据库增量日志解析,提供增量数据订阅和消费,是阿里开源CDC工具,它可以获取MySQL binlog数据并解析,然后将数据变动传输给下游。基于canal,可以实现从MySQL到其他数据库的实时同步。原创 2023-02-23 13:50:25 · 3009 阅读 · 2 评论 -
解决Elasticsearch的Text类型的字段参与聚合和排序
text字段类型用于全文内容,例如电子邮件正文或产品说明,并且es会通过分析器对字符串进行分词,可以在全文检索中搜索单独的单词。文本字段最适合非结构化但可读的内容并且不用于排序,也很少用于聚合keyword主要用于结构化内容的字段,并且总是会有相同值的字段。因为通常需要用于聚合、排序和术语级查询(如term),所以避免参与全文检索如果需要使用text字段类型进行聚合和排序,则需要在建立mapping映射时在fields字段中增加一个keyword类型的数据。原创 2022-10-22 16:51:43 · 2395 阅读 · 0 评论 -
Elasticsearch的检索与聚合:后过滤器post_filter
我们可能会想,“只过滤搜索结果,不过滤聚合结果呢?” 答案是使用 post_filter。它是接收一个过滤器的顶层搜索请求元素。这个过滤器在查询 之后 执行(这正是该过滤器的名字的由来:它在查询之后 post 执行)。正因为它在查询之后执行,它对查询范围没有任何影响,所以对聚合也不会有任何影响。原创 2022-10-15 20:41:04 · 1172 阅读 · 0 评论 -
Elasticsearch DSL查询语法-Metrics聚合
1.Metrics聚合语法:#嵌套聚合查询POST /book/_search{ "size": 0, "aggs": { "categoryaggs": { "terms": { #对书目的分类聚合降序排序 "field": "category", "order": { "_count": "desc" }, "size": 10 }, "aggs": { #嵌原创 2022-05-29 11:42:16 · 283 阅读 · 0 评论 -
Elasticsearch DSL查询语法-Bucket聚合
1.Bucket聚合使用场景,对于数据库中所有的es索引,如果需要对于结构化的数据进行聚合,例如根据书目的分类,书目的出版社等进行聚合语法:POST /book/_search{ "size": 0, #不包含文档结果,只返回聚合结果 "aggs": { "categoryaggs": { #聚合名称,可自定义 "terms": { #聚合类型,由于书目分类为keyword类型,因此使用term "field": "category", #以书目的分类进原创 2022-05-29 11:34:13 · 447 阅读 · 0 评论 -
Elasticsearch DSL查询语法-分页和es的深度分页的限制
原创 2022-05-25 08:53:44 · 487 阅读 · 0 评论 -
Elasticsearch DSL查询语法-关键字排序(数值,keyword)和地理位置排序(_geo_distance)包括使用script对keyword类型的数值排序
概述排序:es支持对于检索结果进行排序,通常默认的检索是根据相关度算分(_score)降序排序,相关度较高的数据排在最前。我们也可以指定排序字段和排序方式自定义排序,此时相关度算分就不会执行,执行效率会有提升。排序字段类型:keyword、地理坐标、date、数值排序DSL语法 POST /book/_search{ "query": { #查询语句 "match_all": {} }, "sort": [ #排序是数组,说明支持多个排序字段, { 如果靠前的原创 2022-05-24 22:31:53 · 5385 阅读 · 7 评论 -
Elasticsearch DSL查询语法-复合查询 Boolean Query
语法说明:查询语句分析#复合查询 Boolean QueryPOST /book/_search{ "query": { "bool": { "must": [ #查询题名包含三体的文档 { "match": { "title": "三体" } } ], "should": [ #查询出版社是‘中华书局’或‘清华出版社’ {原创 2022-05-23 23:03:38 · 301 阅读 · 0 评论 -
Elasticsearch DSL查询语法-Function Score Query
概述:在es检索文档时会根据score(BM25算法)的分值降序排列查询结果,如果希望根据某些条件对于算分进行修改,则可以使用 Function Score Query。语法说明:操作测试#function score queryPOST /book/_search{ "query": { "function_score": { "query": { #这里是查询题名包含三体的文档 "match": { "title": "三体"原创 2022-05-23 22:35:05 · 385 阅读 · 0 评论 -
Elasticsearch根据业务创建映射mapping结构分析:Geopoint的geo_bounding_box和geo_distance查询(二)
es中的Geopoint类型数据的增加和两种查询方式:geo_bounding_box,geo_distance原创 2022-05-22 21:12:41 · 539 阅读 · 0 评论 -
Elasticsearch根据业务创建映射mapping结构分析:keyword和text(一)
es数据库的mapping映射在创建时需要根据业务需求的不同进行创建。在创建时需要考虑字段的约束,例如字段名的定义、数据类型、是否参与检索(index是否为false)、是否需要分词用于创建倒排索引、使用的话需要使用什么分词器。原创 2022-05-21 23:23:13 · 935 阅读 · 0 评论 -
Elasticsearch ik分词器的ik_mart和ik_max_word模式
概述Elaticsearch在保存数据时,会根据创建索引的mapping映射对于每个字段的数据进行分词。同时在查询索引数据的时候会对于检索词进行分词,然后再检索。因此分词对于数据库的查询效率和相关度的关系是非常大的。分词器的作用ES在创建索引和查询索引的时候都需要需要用到分词器进行分词,而分词器的作用:分词器的作用是把一段文本中的词按照一定规则进行切分由于检索和分词都需要用到分词器,因此务必保证使用的一致性,否则由于分词规则的不同导致检索不出来结果因为分词器对应的是Analyzer类,这是一个抽原创 2022-05-17 22:20:42 · 3155 阅读 · 0 评论 -
Elasticsearch 删除数据命令脚本
老版本1.命令: 连接/_index(索引)/_type(类型)/ruid(资料ruid)http://192.168.0.247:8230/data1934_do_50000_7_a/dataobject6/183957390016000/2.执行类型下拉框选中delete新版本 7.x版本命令:连接/索引/类型/执行命令语句http://192.168.0.237:9100/_index/_type/_delete_by_query执行类型下拉框选中post查询语句,务必原创 2022-05-11 10:37:26 · 2270 阅读 · 0 评论 -
ElasticSearch学习系列(三)基于Springboot的Elasticsearch8.1.3的JavaAPI操作(附源码)
本文基于最新版本的8.1.3的elasticsearch数据库和kibana进行介绍。文章包含了在linux环境下Elasticsearch的安装和注意事项,es和kibana的启动和关闭脚本,springboot配置使用javaapi操作数据库等原创 2022-05-09 22:50:20 · 845 阅读 · 2 评论 -
ElasticSearch学习系列(一)关于ES数据库的和核心倒排索引的介绍
一、Elasticsearch概述简介Elasticsearch是一个基于lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。ELK技术栈是Elasticsearch、Logstash、Kibana三大开元框架首字母大写简称。而Elasticsearch 是一个开源的高扩展的分布式全文搜索引擎, 是整个 ELK技术栈的核心。Elasticsearch是一个基于lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。Logstash是中央数据流引擎,用于从原创 2022-05-09 22:28:40 · 454 阅读 · 0 评论 -
ES数据库查询报错 field:[10400001] was indexed without position data; cannot run PhraseQuery“
1.问题描述:es组合查询时报错报错信息:{ "error": { "root_cause": [ { "type": "query_shard_exception", "reason": "failed to create query: field:[10400001] was indexed without position data; cannot run PhraseQuery", "index_uuid": "tfDF原创 2022-03-27 23:16:46 · 2851 阅读 · 0 评论