问题标签 [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 投票
4 回答
45683 浏览

elasticsearch - elasticsearch group-by 多个字段

我正在寻找在 elasticsearch 中对数据进行分组的最佳方法。Elasticsearch 不支持 sql 中的“分组依据”之类的内容。

假设我有 1k 个类别和数百万种产品。您认为渲染完整类别树的最佳方式是什么?当然,您需要一些元数据(图标、链接目标、seo 标题...)和类别的自定义排序。

  1. 使用聚合:示例:https : //found.no/play/gist/8124563 如果您必须按一个字段分组,并且需要一些额外的字段,看起来很有用。

  2. 在一个 Facet 中使用多个字段(不起作用):示例:https ://found.no/play/gist/1aa44e2114975384a7c2 在这里我们失去了不同字段之间的关系。

  3. 构建有趣的方面: ​​https://found.no/play/gist/8124810

例如,使用这 3 个“解决方案”构建类别树很糟糕。解决方案 1 可以工作(ES 1 现在不稳定) 解决方案 2 不工作 解决方案 3 很痛苦,因为它感觉很丑,你需要准备很多数据并且方面会爆炸。

也许另一种选择是不在 ES 中存储任何类别数据,只存储 id https://found.no/play/gist/a53e46c91e2bf077f2e1

然后,您可以从另一个系统(如 redis、memcache 或数据库)获取关联的类别。

这最终会得到干净的代码,但性能可能会成为问题。例如,从 Memcache / Redis / 数据库加载 1k 类别可能会很慢。另一个问题是同步 2 个数据库比同步一个更难。

您如何处理此类问题?

我很抱歉这些链接,但我不能在一篇文章中发布超过 2 个。

0 投票
1 回答
7795 浏览

elasticsearch - 如何在从 API 返回之前过滤 _source?

我在_source索引文档中有很多字段。但是,我不需要将所有这些都从搜索查询中返回。现在,对于每个找到的文档,都_source将返回整个文档。我如何强制只接收每个特定字段_source

0 投票
1 回答
499 浏览

elasticsearch - 在elasticsearch中搜索字幕数据

具有以下数据(简单 srt)

在 Elasticsearch 中索引它的最佳方法是什么?现在有一个问题:我希望搜索结果突出显示链接到时间戳指示的确切时间。此外,还有多个 srt 行重叠的短语(final approach例如上面的示例)。

我的想法是

  • 将 srt 文件索引为列表类型,时间戳是索引。我相信这与重叠多个键的短语不匹配
  • 创建仅索引文本部分的自定义标记器。我不确定 elasticsearch 能在多大程度上突出显示原始内容。
  • 仅索引文本部分并将其映射回弹性搜索之外的时间戳

还是有另一种选择可以优雅地解决这个问题?

0 投票
4 回答
18821 浏览

elasticsearch - How to request a single document by _id via alias?

Is it possible to request a single document by its id by querying an alias, provided that all keys across all indices in the alias are unique (it is an external guarantee)?

0 投票
2 回答
31210 浏览

elasticsearch - Elastic Search 中的多“匹配短语”查询

这对我来说应该很明显,但不是。以下两个匹配仅第二阶段(在这种情况下,Cape Basin

而下面的呱呱叫有错误

我想匹配包含与输入的任何一个 短语完全相同的所有文档。

0 投票
2 回答
210 浏览

elasticsearch - 不使用动态脚本进行查询

我有以下当前使用动态脚本的查询。从那以后,我发现我的主机不支持这一点,因为它具有更广泛的安全影响。我将如何重写此脚本以使其不使用动态脚本?

0 投票
0 回答
52 浏览

elasticsearch - ElasticSearch 文档中是否可以有多个 geo_point 索引?

我有以下类型的映射:

我可以毫无困难地插入文档。但是当我尝试过滤它们时,departure我没有得到任何结果,当我尝试时destination它工作得很好。

geo_point所以问题是:同一个文档中是否可以有多个?

编辑:

样本文件:

示例查询:

谢谢!

0 投票
3 回答
5726 浏览

elasticsearch - 删除 ElasticSearch 中的重复记录

我在 ElasticSearch 中有数百万条记录。今天,我意识到有一些记录重复。有没有办法删除这些重复的记录?

这是我的查询。

这就是我从中得到的。

}

如您所见,我在同一天有 21 条重复记录。我怎样才能删除重复的记录,每天只保留一个?谢谢。

0 投票
2 回答
583 浏览

elasticsearch - Elasticsearch - 具有加权类型的过滤查询

我继承了我正在尝试修改的 Elasticsearch 查询。我目前的查询是:

现在我一直在尝试做的是在结果中将这些术语中的一个提升到其他两个之上,但无法让它发挥作用。我尝试添加一个“提升”值,但这奇怪地给了我相反的效果——它禁用了任何被提升的类型。

我尝试了以下作为“过滤器”对象:

但正如我之前所说,它不是提升“typeThree”,而是从结果中删除所有“typeThree”。

谁能帮我提升一个特定的术语类型?

0 投票
1 回答
77 浏览

elasticsearch - 在 Elasticsearch tp 中使用哪个查询来执行所有子字符串匹配的结果?

我想实现一个商店名称搜索功能,现在如果我写一个商店名称“nite out”,那么我希望我的结果也包含所有子字符串“nite”和“out”和“nite out”。

我尝试使用前缀查询,但无法执行。我听说过模糊查询,但不知道它能否解决我的问题。

谁能告诉我应该使用哪个 ES 查询在顶部获得“nite out”匹配结果,其余“nite”和“out”结果也在“nite out”匹配结果下方。