问题标签 [elasticsearch-nested]

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 投票
1 回答
3161 浏览

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

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

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

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

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

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

0 投票
2 回答
4813 浏览

elasticsearch - Elasticsearch 映射解析器异常?

我正在尝试在 Elasticsearch 中创建一个嵌套文档。

结构:

  • 评论是一个嵌套文档 - 在里面 - 评论和 Star_Rating。
  • 内部评论,姓名和地址。

这是下面提到的查询。

错误 :

有人能帮忙吗?

0 投票
2 回答
9561 浏览

elasticsearch - 弹性搜索中的匹配数组

我有如下文件:

我需要根据武器匹配用户,我正在尝试类似:

因为我在 PHP 中使用弹性。这里 $params['weapons'] 是:

我收到一个错误:

非法状态异常:在 1:36 时无法在 START_ARRAY 上获取文本

任何建议/帮助将不胜感激我如何匹配数组。我参考了嵌套数据类型

更新#1:我发送给我的函数的参数:{"from":0,"size":null,"city":null,"state":"0","weapons":["1","2"],"activities":[],"species":[],"properties":[],"search_text":"lastname"}

update#2 : json 格式的查询正文:

0 投票
1 回答
105 浏览

java - 从java更新elasticsearch中嵌套类型内的字段

请找到以下映射,我们正在尝试更新域类型中的域字段。

下面给出的java代码,

我们得到以下异常,

任何人都可以帮助我们如何在 java 中解决这个问题。

0 投票
1 回答
743 浏览

elasticsearch - 具有 reverse_nested 路径参数的 Elasticsearch 聚合

有人可以详细说明elasticsearch聚合中reverse_nested标签中的“路径”参数吗?我正在尝试使用不同嵌套级别的键来聚合嵌套桶。以下是详细信息:

使用以下映射创建索引

在“agg”索引中索引一些文档:

以下聚合按预期工作:(颜色桶包含完成桶):

但是,以下内容似乎无法按预期工作:

在非工作的 DSL 中,我试图摆脱对“功能”的嵌套,并再次深入以完成任务。这似乎并没有为“完成”收集桶。

但是,我们从第一个原则到根文档级别并获取字段的方法似乎有效。因此,似乎我没有正确使用 reverse_nested 中的“路径”参数,并且可能没有登陆正确的嵌套。有人知道为什么第二个查询不起作用吗?

0 投票
1 回答
6128 浏览

elasticsearch - elastic search 5 - 如何查询对象数据类型和json的嵌套数组

我想查询已经加载到 Elasticsearch 5 中的嵌套数据,但每个查询都没有返回任何内容。数据是对象数据类型json 的嵌套数组

这是嵌套的数据类型,即 json 的 team_members 数组:

这个对象数据类型,即availability_slot json:

这是我的弹性搜索映射:

我有两个查询由于不同的原因而失败:

查询 1 尽管弹性搜索中存在记录,但此查询返回的计数为零,我发现查询由于过滤器而失败:

这将返回零结果:

没有过滤器的查询 1 上面没有过滤器的相同查询有效:

上面的查询返回 3 个命中:

对象数据类型的查询 2

查询返回零命中,但数据在弹性搜索中:

如何让两个查询都按帐户进行过滤。谢谢

0 投票
0 回答
934 浏览

c# - 使用 .Net NEST 客户端为产品目录创建 Elasticsearch 查询

使用 .NET 的 Elasticsearch NEST 库我正在尝试创建一个搜索产品的查询。该模型的结构如下:

我需要根据以下参数过滤产品:

  • branchId(int):产品BranchId等于branchId参数,
  • subbranches (int[]):产品 SubbranchId 包含在 subbranches 数组中
  • rating(int):产品Rating大于等于rating参数
  • minPrice (int):产品变体价格大于 minPrice 参数
  • maxPrice (int):产品变体价格小于 maxPrice 参数
  • searchTerm(字符串):产品名称或描述包含字符串 searchTerm
  • tags (string[]):产品变体值包含一个或多个或所有标签。

注意:branchIdsubbranchesratingsearchTerm应该过滤掉顶级 ProductIndex 对象。然后,minPricemaxPrice参数应该过滤掉任何嵌套的 Variants 对象,如果它们的 Price 不在指定范围内,最后tags参数应该过滤掉任何不包含其 Values 数组中的任何标签的嵌套 Variants 对象或对它们进行评分根据在 Values 数组中匹配的标签数量适当地进行。

最终结果应该是评分的 ProductIndex 对象的列表,每个对象都包含一个过滤掉和评分的 VariantIndex 对象的列表。


这是我尝试创建查询的方式,但这给了我完全错误的搜索结果:


编辑1: 根据我自己调查的评论,我终于设法创建了一个正常工作的查询。剩下要做的就是过滤掉嵌套的 VariantIndex 对象列表,以便我们只获得符合价格标签过滤器的变体。为了实现这一点,我应该将什么代码添加到我的最新工作版本的查询中?

0 投票
1 回答
274 浏览

date - Elasticsearch在嵌套对象中迭代范围查询结果

我有一个弹性搜索索引,它有一个名为可用性的嵌套对象,它有一个日期和一个布尔字段,映射模式如下

这是其中一个对象

我的问题是我想在两个日期之间进行搜索,并找出两个日期之间的所有日期的酒店可用性状态是否为真,并且在粗略的水平上也匹配城市名称,我还有其他搜索条件,我认为我可以处理,但是找到两个日期之间所有日期的真实状态让我很烦恼

例如搜索查询参数城市阿尔伯克基,开始日期 10/22/2017 和结束日期 10/24/2017

我创建了一个查询,它给出了不想要的结果,我的查询是

这个查询的第一个命中是

在 2017 年 10 月 23 日和 2017 年 10 月 24 日的命中状态中,有人可以指导我正确的方向,或者给出一个示例搜索查询来解决这个问题

0 投票
2 回答
873 浏览

elasticsearch - elasticsearch中的多值嵌套字段聚合

在elasticsearch 5.6中对多值和嵌套字段使用聚合时遇到了一个非常特殊的问题,我的索引映射如下:

我的数据是这样的:

要求是:我得到一个查询词,例如apple,我用这个查询词搜索文件,最后,我想聚合名称查询词apple的国家。我的查询如下所示:

所以输入是apple,预期结果是

但弹性搜索返回结果:

如何更改查询 DSL 以获得预期结果?

0 投票
1 回答
791 浏览

elasticsearch - ElasticSearch 嵌套查询 - 排除父文档

尝试排除其中一个子文档与查询不匹配的顶级文档。

对于下面的示例,我试图排除其中一个嵌套作业具有current: true并且与company name: Elastic. 但由于其中一个嵌套作业文档与current: falseand company匹配name: Elastic,因此返回此文档。我正在使用嵌套查询,其中必须匹配公司名称和过滤器,其中 current: false。我怎样才能使它不返回以下文件?