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

ElasticSearch中的排序和最新记录

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

我有两个与ElasticSearch有关的问题。

1)有什么方法可以指定我想要特定字段的结果以降序排列吗?等效SQL查询为:

select * from table1 where a="b" order by myprimarykey desc;

2)如何获得第一和最后(最新)记录?


问题答案:

1)Elasticsearch具有相当完善的Sorting
API
,可让您控制排序顺序。因此,在elasticsearch中,等效于您的MySql查询如下所示:

{
    "query" : {
        "term" : { "a" : "b" }
    },
    "sort" : [
        { "myprimarykey" : "desc"} }
    ]
}

排序也可以在_search
URI上指定。

2)要检索第一条记录和最后一条记录,您需要使用descasc排序顺序执行两次搜索,并为每个检索一个记录。可以使用Multi Search
API
合并两个查询。



 类似资料:
  • 问题内容: 我想从ElasticSearch索引返回最近的记录(前1个),类似于下面的sql查询; 能做到吗? 问题答案: 你有_timestamp在您的文档映射启用? 您可以在此处检查映射: 如果是这样,我认为这可能会获得最新的信息:

  • 问题内容: 我有一个运行的服务,该服务接受约1,000,000词典的列表,并执行以下操作 因此,如果我有以下词典列表: 我最终 和 然后,我需要对每个myLists词典中的所有数据进行排序。 我目前正在做的事情如下所示: 当我有100,000条左右的记录时,这种方法效果很好,但是,如果有1,000,000条记录,则至少需要5-10分钟才能对每条记录进行排序,总共需要16条记录(我的原始词典列表实际

  • 以下是我的一些疑问: 我有两个不同的流,元素按顺序排列。 1)现在,当我在这些流中的每一个上执行时,会维护顺序吗?(因为这里的每个组都将仅发送给一个任务管理器)我的理解是,记录将是一个组的顺序,在这里纠正我。 2) 在这两个流上执行按键操作后,我正在进行联合分组,以获取匹配和非匹配记录。这里也会维持秩序吗?,因为这也适用于KeyedStream。我正在使用事件时间(EventTime)和上升时间(

  • 我试图将查询与exclude查询一起使用,以便它匹配除要排除的术语之外的所有术语。我在一个基本的URI查询中找到了它,但不是常规的JSON查询。如何将此URI转换为JSON类型查询? 其中是不匹配的标记列表。 这是我目前所掌握的: 但是,当我这样做时,仍然包含在结果中。如何排除?

  • 我只是想看看我是否理解教授和在线资源所说的话。 对于heapSort算法,第一个元素的索引从0开始。 对于最大堆,如果子堆大于父堆,则percolate down应将最大子堆与其父堆交换,例如(这是用于赋值,因此我尝试发布尽可能少的代码): 所以最后,最大元素应该在索引0处。 如果这是正确的,我不理解的是heapSort实现: 最大堆中的渗滤层不应该将最大的元素放在索引0处吗?在这种情况下,为什么

  • 问题内容: 我们正在索引中存储一个字段,并希望将该字段用于两个目的: 我们正在使用ngram过滤器进行分析,因此我们可以提供自动完成和即时结果 我们希望能够在字段上使用ASC排序而不是得分来列出结果。 索引/过滤器/分析器的定义如下: 当我们在字段上排序时,我们遇到的问题是不可预测的结果。经过一番搜索后,我们在ElasticSearch手册页的末尾找到了这个…(http://www.elastic