首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Elasticsearch返回结果的上下文(点击前后10行)

Elasticsearch返回结果的上下文(点击前后10行)
EN

Stack Overflow用户
提问于 2017-06-05 07:32:26
回答 1查看 1.9K关注 0票数 0

查询elasticsearch时,只返回命中文档。如何获得点击的上下文,比如,点击前后的10个文档?

例如,我在elasticsearch中插入了5个日志:

代码语言:javascript
运行
复制
{"log": "a"}
{"log": "b"}
{"log": "c"}
{"log": "d"}
{"log": "e"}

我已经搜索了"query": { "match": { "log": "e" } },es将返回第五份文件。但是,我可能需要前面的4条日志进行调试,es能返回上下文吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-07 06:38:45

也许我的回答可能不是一个完整的答案,但我想分享我的意见,以解决这个问题。

首先,您希望获得像grep应用程序afterbefore特性这样的结果。据我所知,Elasticsearch可以根据与文档匹配的术语找到文档,并且不按文档的顺序来考虑最近的文档。在我看来,你可以用两种方法解决这个问题。第一种是在摄入时将相对数据填充到文档中,第二种是执行第二次查询以查找相关数据。

对于第一种方法,您将有不必要的重复数据,这将导致性能问题或需要更多的存储,cpu或ram等。但是您可以用一个查询来获取数据和相关数据。要处理这个问题,您可以使用logstash的https://www.elastic.co/guide/en/logstash/current/plugins-codecs-multiline.html过滤器,同时将您的日志摄入到Elasticsearch。

对于第二种方法,您将非常酷:)。摄入部分不会发生任何变化,但是您应该更改应用程序的表示部分。另一方面,在Kibana上使用ElasticStack 5.4时,有一个新的特性,就是文档上下文。您可以轻松地到达围绕特定文档的文档。我还没有尝试,但我想,这可能和第二种方法是一样的。

更新:

我已经检查了Kibana周围的文档特性,它使用了search_after api。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44363913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档