问题描述以下过程基于elasticsearch 7.5.0最近发现es测试服务器日志有大量报错,而且kibana打不开,于是打开es日志查看如下:[2023-08-10T13:54:33,119][DEBUG][o.e.a.s.TransportSearchAction] [super-test.aigupiao.com] [.kibana][0], node[xXnF0Aw-SSWhLuXz5hUY4Q], [P], s[S...
Read More >
分类目录归档:ELK
2019
09-09
09-09
elasticsearch如何实现相似推荐功能 NEW

2019
09-08
09-08
elasticSerch同时查询多个索引 NEW
背景许多场景需要查询的结果不在一个索引里面,但是elasticseach不能像别的数据库一样进行联查,所以我们可以同时查询多个索引的字段来满足需求查询DSL语句GET /_search
{
"size": 20,
"query": {
"bool": {
&nb...
Read More >
2019
09-07
09-07
elasticsearch深度分页详解-史上最全面试必备
三大ElasticSearch分页方式1、传统方式(from&size) 顶部查询,查询10000以内的文档 场景:需要实时获取顶部的部分文档。 eg: 例如查询最新的订单。2、Scroll 滚动游标 方式 深度分页,用于非实时查询场景 eg...
Read More >
2019
09-06
09-06
elasticsearch中实现SQL中like的匹配效果
背景我们经常会遇到这种后台需求,要求实现SQL中like “%xxxx%”的匹配效果。因为后端要求搜索要毕竟准确的搜出来,方便做运营相关的。wildcard通配这种效果在ES中最匹配的做法是用wildcard query通配,这种情况不会对query分词,而是直接遍历倒排索引逐个匹配计算,性能是无法想象的,大家慎用。match全文匹配效果最差的做法是用match全文检索,这种情况只要query分词的任何一个term出现在倒排中,就会召回文档,所以很容易搜出一些八竿子打不着的文...
Read More >
概念常规multi-field搜索结果分析dis_max参数设置
一、为帖子数据增加content字段POST /forum/article/_bulk
{ "update": { "_id": "1"} }
{ "doc" : {"content" ...
Read More >
2019
09-04
09-04
elasticsearch中四种常见的相关度分数优化方法
对相关度评分进行调节和优化的常见的4种方法1、query-time boost 查询的时候设置query的boost. 增加权重2、重构查询结构.如should中嵌套bool。3、negative boost 包含了negative term的doc,分数乘以negative boost,分数降低4、constant_score 如果你压根儿不需要相关度评分,直接走constant_score加filter,所有的doc分数都是1,没有评分的概念了1、query-time b...
Read More >
2019
09-03
09-03
elasticsearch官方已支持SQL查询
背景平时使用Elasticsearch的时候,偶尔会在Kibana中使用Query DSL来查询数据。每次要用到Query DSL时都基本忘光了,需要重新在回顾一遍,最近发现Elasticsearch已经支持SQL查询了(6.3版本以后)简介Elasticsearch SQL是一个X-Pack组件,它允许针对Elasticsearch实时执行类似SQL的查询。无论使用REST接口,命令行还是JDBC,任何客户端都可以使用SQL对Elasticsearch中的数据进行原生搜索和...
Read More >
2019
09-02
09-02
elasticsearch搜索建议与上下文提示suggesters

2019
09-01
09-01
elasticsearch中忽略大小写模糊搜索实现
背景有时我们想cms搜索的时候更精准一点,可能会用到wildcard不分词的模糊搜索,但是不分词就有区分大小写搜索的问题解决方案1.在es查询时不区分大小写,可以让查询更方便,具体设置如下:{ "settings": { "analysis": { "analyzer...
Read More >
2019
08-30
08-30
elasticsearch7.X Mapping常见字段类型整理
一、核心数据类型字符串:text, keyword数值型:long, integer, short, byte, double, float, half_float, scaled_float布尔型:boolean日期型:date, date_nanos二进制:binary范围型:integer_range, float_range, long_range, ...
Read More >
2019
08-29
08-29
logstash实现reindex
概念Elasticsearch 本身不提供对索引的 rename,mapping 的 alter 等操作。所以,如果有需要对全索引数据进行导出,或者修改某个已有字段的 mapping 设置等情况下,我们只能通过 scroll API 导出全部数据,然后重新做一次索引写入。这个过程,叫做 reindex。logstash实现reindex在最新版的 Logstash 中,对 logstash-input-elasticsearch 插件做了一定的修改,使得通过 logstash...
Read More >
2019
08-28
08-28
elasticsearch中设置查询的请求超时时间
背景因为我们的项目是用的php,为了防止调用搜索时,请求处理时间太长,导致php-fpm占满,所以需要对外部接口设置请求的超时时间,避免过多的超时请求,我们可以用过对es的参数限制,设置超时时间search 请求参数from从索引的第几条数据开始返回,默认是 0;size返回多少条数据,默认是 10。注意:Elasticsearch 集群实际是需要给 coordinate node 返回 shards number * (from + size) 条数据,...
Read More >
2019
08-27
08-27
elasticsearch中搜索数量不能超过10000的解决方案
问题描述开发环境: JDK1.8、Elasticsearch7.5.1最近在操作ES进行分页查询(from+size)时,需要返回满足条件的数据总数。我发现满足条件的数据总数一旦超过10000条,返回的结果永远是10000。为什么会被限制只能搜索10000条数据呢?如何查询精确的数据总数呢?问题分析查看官方文档: Elasticsearch 7.5Elasicsearch通过index.max_result_window参数控制了能够获取的数据总数from+size的最大值,...
Read More >
2019
08-26
08-26
logstash-keystore保存Elasticsearch或其他密码
背景在配置Logstash时,你可能需要指定敏感设置或配置,比如密码,与依赖文件系统权限来保护这些值不同,你可以使用Logstash keystore来安全地存储用于配置设置的secret值。在向keystore中添加key及其secret值之后,你可以在配置敏感设置时使用key代替secret值。引用key的语法与环境变量的语法相同:${KEY},KEY是key的名称。例如:jdbc_password => "${MYSQL_PWD}&q...
Read More >
2019
08-25
08-25
elasticsearch中基于slop参数实现近似匹配
slop的含义query string,搜索文本,中的几个term,要经过几次移动才能与一个document匹配,这个移动的次数,就是slop词条位置当一个字符串被分析时,分析器不仅只返回一个词条列表,它同时也返回原始字符串的每个词条的位置、或者顺序信息:例如:POST /_analyze
{
"analyzer": "standard",
"text&...
Read More >
2019
08-24
08-24
logstash多配置文件的使用和常见问题

2019
08-23
08-23
elasticsearch中自定义分析器
自定义分析器虽然Elasticsearch带有一些现成的分析器,然而在分析器上Elasticsearch真正的强大之处在于,你可以通过在一个适合你的特定数据的设置之中组合字符过滤器、分词器、词汇单元过滤器来创建自定义的分析器。一个 分析器 就是在一个包里面组合了三种函数的一个包装器, 三种函数按照顺序被执行:字符过滤器字符过滤器 用来 整理 一个尚未被分词的字符串。例如,如果我们的文本是HTML格式的,它会包含像 <p&...
Read More >
2019
08-22
08-22
elasticsearch中分片(Shards)的理解
分片重要性ES中所有数据均衡的存储在集群中各个节点的分片中,会影响ES的性能、安全和稳定性, 所以很有必要了解一下它。分片是什么?简单来讲就是咱们在ES中所有数据的文件块,也是数据的最小单元块,整个ES集群的核心就是对所有分片的分布、索引、负载、路由等达到惊人的速度实列场景:假设 IndexA 有2个分片,我们向 IndexA 中插入10条数据 (10个文档),那么这10条数据会尽可能平均的分为5条存储在第一个分片,剩下的5条会存储在另一个分片中。和主流关系型数据库的表分区的...
Read More >
2019
08-21
08-21
elasticsearch中forcemerge清除文件占用的磁盘空间
