当前位置: 首页 > 知识库问答 >
问题:

如何使用数组中的字段对ElasticSearch索引进行排序?

姜宏盛
2023-03-14
{
  'name':'xxxxx',
  'comments':[
     {comment: 'xxxxx', 'commentDate':'yyyy-MM-dd HH:mm:ss', 'id':1},
     {comment: 'xxxxx', 'commentDate':'yyyy-MM-dd HH:mm:ss', 'id':2}
   ]
}
{
  'name':'xxxxx',
  'comments':[
     {comment: 'xxxxx', 'commentDate':'yyyy-MM-dd HH:mm:ss', 'id':1},
     {comment: 'xxxxx', 'commentDate':'yyyy-MM-dd HH:mm:ss', 'id':2}
   ],
  'lastCommentDate': 'yyyy-MM-dd HH:mm:ss'
}

共有1个答案

暨成双
2023-03-14

如果您在没有在索引上创建映射的情况下获取数据,Elasticsearch将扁平化嵌套文档。

Elasticsearch这样做是为了加快查询速度,尽管它不适合这样的情况。

确保在获取要索引的数据之前创建了自定义映射。

 类似资料:
  • 问题内容: 我是Elasticsearch的新手,正在尝试使用和字段创建多字段索引。有了这些字段,它们都工作得很好,但是当我尝试在数组中获取一些结果时,它返回一个空的数组。 我的资料: 对应: 搜索: 期望: 按,或搜索,应返回结果 搜索应返回结果 搜索应返回结果 搜索依据不应返回结果 我想念什么? 问题答案: Cross_fields具有约束,所有字段应具有相同的搜索分析器,或者所有查询项应出现

  • 问题内容: 我正在尝试排序(减少)整数数组,但要跟踪原始索引。 我的意思是,例如,如果我有这个数组: 使用Arrays.sort(b,Collections.reverseOrder())之后变成(我使用Arrays.sort,因为在此示例中b的长度仅为5,但是在我的问题中b的长度可能是1 <b.length <70 但我想以某种方式拥有原始索引,我的意思是知道 我不知道我的问题是否明确,请向我询

  • 我想根据数字字段对搜索结果进行排序。在下面的示例代码中,我希望基于'Age'字段进行排序。我从以下答案开始: [如何在Lucene 6中对IntPont或LongPoint字段进行排序 [在Lucene中根据数字字段对搜索结果进行排序 我在搜索函数中将sortfield.type.score更改为sortfield.type.long。但我得到: 意外的docvalues为字段“年龄”键入NONE

  • 问题内容: 我有这样的Elasticsearch数据- 在此示例中,我进行了全文搜索,正在“ text”字段中搜索所有具有“ unemployment”子字符串的文档。最后,我希望所有文档以“文本”字段中“失业”字符串的索引值的升序排列。例如- 子字符串“失业”首先在doc2中的索引“ 4”处出现,因此我希望此文档在结果中首先返回。 我尝试了一些诸如term_vector这样的事情,这是我使用的映

  • 问题内容: 在 给定目标索引数组的情况下,如何对给定数组 进行 排序? 例如: 我尝试了以下算法,但在上面的第二个示例中失败了。 您如何在O(n)时间和O(1)额外空间中解决此问题? 您能否提供证明您的算法有效的证据? 注意: 这个问题看起来与此类似,但是这里允许变异。 问题答案: 该算法失败,因为它在列表的索引上只有一个循环。 您的算法中发生的事情是这样的: 请注意,第一次交换是如何进行的,除非

  • 问题内容: 如何按其字段之一(例如或)对对象数组进行排序? 问题答案: 使用usort,这是从手册改编而成的示例: 您还可以将任何callable用作第二个参数。这里有些例子: 使用匿名函数(来自PHP 5.3) 从班级内部 使用箭头函数(来自PHP 7.4) 另外,如果要比较数字值,则应使用“比较”功能。