当前位置: 首页 > 面试题库 >

无论字段的位置如何,都在嵌套文档中搜索字段

呼延臻
2023-03-14
问题内容

考虑一下这样的Elasticsearch中的文档:

{
  "id": 1,
  "Comment": "Comment text",
  "Reply": [{
    "id": 2,
    "Comment": "Nested comment text",
  }, {
    "id": 3,
    "Comment": "Another nested comment text",
  }]
}

我想搜索时id == 2不知道它是在文档的第一层还是第二层。这可能吗?还请记住,嵌套级别可以是任何东西(在开发时未知)。

如果可能的话,在id == 2不知道id文档第二级中存在的情况下通过搜索返回该文档的查询是什么?


问题答案:

试试这个:

{
  "query": {
    "query_string": {
      "fields": ["*.id","id"],
      "query": "2"
    }
  }
}


 类似资料:
  • 问题内容: 我对ES还是相当陌生,并正在将其用于我的新项目。首先,我为客户提供了一个简单的映射,其中包含名字和姓氏以及付款信息对象列表。如果我在SQL中执行此操作,那将类似于客户表和具有1:许多关系的付款信息表。 这是我要执行的操作的一个简单示例:https : //gist.github.com/anonymous/6109593 我希望根据payInfos嵌套数组中的任何匹配项找到任何客户,即

  • 我只需要在文档中的三个字段中搜索一个术语,并根据搜索术语的位置对结果进行排序。例如,找到3个文档:1个在字段2中有搜索词,2个在字段3中有搜索词,3个在字段1中有搜索词。 我想按顺序看:3、1、2。 我以为我可以用助推来做。现在我使用以下方法: 然而,它似乎是,如果我有一个文档与4个词等于搜索词在字段2和另一个文档与1个词在字段1,比后者将有一个较小的分数。 我看到的一个解决方案是为field1和

  • 问题内容: 我如何在mongodb文档中嵌套文档的地方搜索文档。例如,我有一组私人消息。每条私人消息都有两个嵌套文档- 一个代表发送用户,另一个代表接收使用。两个嵌套文档的格式均为- userID:34343,名称:Joe Bloggs 我希望能够搜索用户发送的所有邮件(例如,搜索发件人用户的嵌套文档)。 我正在使用Java驱动程序。我是否需要创建一个代表嵌套文档的DBObject? 谢谢 问题答

  • 这个问题的标题不能完全证明我的要求是合理的。我有一个嵌套文档,格式为 文档映射为 我希望能够以 我现在尝试的查询是 这允许我查询AND子句的第一个条件。我应该在查询中的何处添加第二个AND条件(弹性搜索不允许在其查询中包含多个must子句),以允许我根据这两个条件进行查询。我查看了elasticsearch bool查询组合must和OR,但这不是我所需要的。

  • 我使用Spring-Data-ElasticSearch2.0.8和ElasticSearch.2.2.0来动态搜索嵌套对象。 基本上,我的嵌套对象可以有很少的嵌套字段,但我希望在所有这些字段中动态搜索。例如,一个动物文档可以有3x个字段来描述它:名称/大小/描述。 我想在所有这些搜索,因为我的搜索结束点只是有一个‘描述’自由文本选项。因此,当用户在他的入口点键入'15'或'dog'时,搜索将检查

  • 如果我有一个数据,其结构类似于集合中的单个文档: 有没有办法通过id“childid”搜索嵌入的文档?因为mongo没有索引嵌入文档的_id字段(如果我在这里错了,请纠正我),因为这个查询不起作用:db。收集查找({u id:“childid”}); 另外,请告知我是否有任何其他文档数据库适用于这种树结构的检索数据,其中要求: 查询子级而不必发出联接 查找树中的任何节点的速度与查找根节点的速度一样