elasticsearch Elasticsearch:搜索并向用户显示结果,滚动API,elasticsearch,elasticsearch" /> elasticsearch Elasticsearch:搜索并向用户显示结果,滚动API,elasticsearch,elasticsearch" />

elasticsearch Elasticsearch:搜索并向用户显示结果,滚动API

elasticsearch Elasticsearch:搜索并向用户显示结果,滚动API,elasticsearch,elasticsearch,我不熟悉Elasticsearch。我被滚动API弄糊涂了 滚动不是用于实时用户请求,而是用于 处理大量数据,例如为了重新索引 将一个索引的内容转换为具有不同配置的新索引 我需要的是: 用户键入搜索短语并单击搜索按钮 程序将搜索Elasticsearch以查找结果的第一页 向用户显示结果的第一页,如果用户单击“下一页”或跳转到下一页,程序将显示该页的结果 以下是我发现的两种方法: SearchResponse scrollResp = client.prepareSearch("book")

我不熟悉Elasticsearch。我被滚动API弄糊涂了

滚动不是用于实时用户请求,而是用于 处理大量数据,例如为了重新索引 将一个索引的内容转换为具有不同配置的新索引

我需要的是:

  • 用户键入搜索短语并单击搜索按钮
  • 程序将搜索Elasticsearch以查找结果的第一页
  • 向用户显示结果的第一页,如果用户单击“下一页”或跳转到下一页,程序将显示该页的结果
  • 以下是我发现的两种方法:

    SearchResponse scrollResp = client.prepareSearch("book")
            .setTypes("children")
            .setQuery(query)
            .setSize(20).execute().actionGet();  
    
    SearchResponse scrollResp = client.prepareSearch("book")
            .setTypes("children")
            .setSearchType(SearchType.SCAN)
            .setScroll(new TimeValue(60000))
            .setQuery(query)
            .setSize(20).execute().actionGet();  
    
    我应该用哪一种


    谢谢和问候

    您应该使用
    from
    size
    参数来控制分页,
    from
    是起始索引,
    size
    是每页的项目

    SearchResponse scrollResp = client.prepareSearch("book")
        .setTypes("children")
        .setQuery(query)
        .setFrom(20)
        .setSize(20).execute().actionGet();  
    

    Dan,谢谢你提供的信息。我会照你说的做。一个简单的问题:我不应该设置搜索类型或设置滚动,对吗?用户搜索请求不需要扫描和滚动,它应该在您想要处理大量数据时使用,即重新索引-因此您不需要
    setSearchType
    setScroll
    。非常感谢您的确认!