问题标签 [elasticsearch-query]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1373 浏览

elasticsearch - 如何在 ElasticSearch 中的单个 URI 中执行多个搜索查询?

我正在尝试通过从邮递员发送一个 GET http 调用来获取索引的结果,该调用包括日期范围和我手动添加的字段(“log_type”),

所以现在我能够得到结果,当我单独查询它时,例如:

日期范围:http://localhost:9200/dialog_test/_search?q=timestamp:[2016-08-05+TO+2016-08-06]

log_type: http://localhost:9200/dialog_test/_search?q=log_type:GetProvisioning%20SUCCESS

在上面的 url (log_type) 中,GetProvisioning Success 是一个 log_type。

所以我想知道的是,如何将它们组合到一个查询中以识别特定日期范围和特定 log_type 之间的结果是什么?

任何帮助都将不胜感激

0 投票
1 回答
959 浏览

elasticsearch - 对 Elastic Search 中的索引进行搜索查询时,时区会导致不同的结果

我试图从特定索引的搜索查询(即:给定日期范围的搜索结果)中找出结果。这样我就可以每天得到结果。

这是查询:http://localhost:9200/dialog_test/_search?q=timestamp:[2016-08-03T00:00:00.128%20TO%202016-08-03T23:59:59.128]

在上面,时间戳是我使用 my 添加的一个字段,logstash.conf以获取实际的日志时间。当我尝试查询这个时,令人惊讶的是,我得到了一些命中(总命中数:24),因为从 (2016-08-03) 日期起我没有任何日志记录,所以应该是 0。它实际上显示了第二天的计数(即:(2016-08-04),它在日志文件中有 24 条记录。我确定timezone.

我的时区是GMT+5:30

这是我的过滤部分logstash conf

编辑

这是日志文件中日期为 (2016-08-04) 的前 24 条记录的快照:

在此处输入图像描述

这是JSON我在搜索 2016-08-03 日期时得到的响应的快照:

在此处输入图像描述

我哪里错了?任何帮助都将不胜感激。

0 投票
1 回答
3161 浏览

elasticsearch - ElasticSearch - 限制查询结果中嵌套集合的大小

如果我的博客文章包含数千(或十万)条nested评论,并且我只想检索前 10 篇博客文章。我将只使用size来控制我想要检索多少博客文章,但我不确定如何限制nested我想要多少评论的大小。

例如,这将返回前 10 篇无限制评论的博客文章

我尝试inner_hits但它对我不起作用。当我使用时,我必须在嵌套评论中进行查询,我还禁用了源(以避免检索包含所有评论的帖子),并且 inner_hits 结果将给我每个帖子的每个评论(冗余)即使在某些情况下它是相同的父帖子。我也考虑过parent-child方法,但这意味着创建多个请求/查询。

你知道如何限制查询中嵌套集合的大小吗?

我正在寻找的是创建一个查询,我可以做一些事情,比如获得前 10 篇博客文章和前 5 条评论。

0 投票
1 回答
1038 浏览

regex - Elasticsearch:如何按特定的 URL 路径过滤和分组?

我有一个索引,网址,如下所示:

该路径将存储来自 url 的 PATH 部分,例如:

将存储为:

我正在存储各种路径,所以可能更像:

我正在尝试找出每个路径具有的唯一网页浏览量。我不确定我应该怎么做,我应该使用正则表达式吗?

我想它看起来像(伪代码):

0 投票
1 回答
1198 浏览

regex - Elasticsearch:在字段上运行聚合并使用不匹配值的正则表达式过滤掉特定值

我正在尝试在字段上运行聚合并忽略特定值!所以我有一个字段路径,其中包含一堆不同的 url 路径。

运行它时,它不会过滤掉路径包含缓存或媒体的文档?!

如果我删除过滤器,如果我把它留在里面,将返回相同的结果。

0 投票
1 回答
220 浏览

mysql - How could I have MySQL IN clause within my elasticsearch query?

I'm trying perform an elasticsearch query as a GET request in order pull data from the index which I created. The data which is in the index is, a table from MySQL DB, configured though logstash.

Here is my request without the IN clause:

http://localhost:9200/response_summary/_search?q=api:"location"+AND+transactionoperationstatus:"charged"+AND+operatorid='DIALOG'+AND+userid:test+AND+time:"2015-05-27"

In the above, I should be able to append AND responseCode IN (401,403). I tried giving it a search on the web, but couldn't find any solutions.

Any help could be appreaciated.

0 投票
1 回答
94 浏览

mysql - 我的弹性搜索查询中如何包含 MySQL sum() 和 group by 子句?

我正在尝试将elasticsearch查询作为GET请求执行,以便从我创建的索引中提取数据。索引中的数据是来自MySQLDB 的表,但已配置logstash

这是我没有 IN 子句的请求:

http://localhost:9200/response_summary/_search?q=api:"location"+AND+transactionoperationstatus:"charged"+AND+operatorid='DIALOG'+AND+userid:test+AND+time:"2015-05 -27"

在上面,我应该能够附加sum(chargeAmount+0)& group by。我尝试在网上搜索它,但找不到任何解决方案。

任何帮助都可以得到赞赏。

0 投票
1 回答
69 浏览

mysql - 如何在我的弹性搜索查询中附加时间戳范围?

我正在尝试执行弹性搜索查询作为POST请求,以便从我创建的索引中提取数据。索引中的数据是来自 MySQL DB 的表,但已配置logstash

这是我的要求和JSON正文:

http://localhost:9200/response_summary/_search

身体:

在上面的JSON正文中,我需要将 附加timestamp到 中query_string,以便从日期范围内的索引中获取数据。我尝试在查询末尾添加:

AND timestamp:[2015-05-27T00:00:00.128Z+TO+2015-05-27T23:59:59.128Z]"

我哪里错了?任何帮助,将不胜感激。

0 投票
1 回答
169 浏览

elasticsearch - 寻找一种更简洁的方式来为多个术语添加前缀匹配

我正在寻找更好的方法。

我有来自用户的任意数量的输入术语(假设它们是姓氏)。我想对每一个执行前缀搜索并提高任何匹配项的分数。

未分析的前缀查询是我现在使用的 - 见下面的例子 - 但是我也承担了分析器通过创建自定义编程来分割空格上的输入项,修剪,小写它们,然后使用标记构造一系列前缀查询以提高评分。

  1. 示例输入是一堆姓氏,例如“Smith, Rodriguez, ROBERTS, doe”。
  2. 然后我的程序将它们解析为标记并将它们小写为:
    smith
    rodriguez
    roberts
    doe

  3. 最后我构造了多个前缀查询来提高分数,就像这样

我不禁认为我这样做的效率很低,并且 elasticsearch 可能会提供我不知道的更智能的功能。我希望前缀查询的分析形式让我的生活更轻松。例如,将输入逐字逐句传递给弹性查询将是理想的,所以"someAnalyzedPrefix": {"surname": "smith rodriguez roberts doe", prefix_length: 3}我在这里有点梦想,但你明白了我正在寻找一个更简单的解决方案的事实。

我想知道在负责分析的同时,是否有任何其他类型的查询可以产生相同的结果。

欢迎提出改进建议,否则我将坚持使用上面的模式,因为它确实满足需要,尽管不一定漂亮。

0 投票
1 回答
4430 浏览

spring - Spring Data Elasticsearch 在两个日期之间获取文档会生成错误的查询

我正在尝试获取大于或小于指定日期的文档。

为此,我正在使用下面的 searchQuery。

从上面的查询构建器生成的查询是这样的。

即使我使用rangequery 的函数 gt 和 lt ,查询也会生成为from 和 to

有什么解决方案可以像这样生成查询。

这是我写的测试课。

关于如何在 Spring Data Elasticsearch 中实现这一点的任何建议都会有所帮助。