You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言bleve搜索引擎默认最多返回10条结果,如何调整获取全量数据?

问题原因

bleve 搜索请求默认设置了返回结果数量上限,bleve.NewSearchRequest() 生成的请求默认最多返回10条匹配结果,属于框架默认分页配置,不是索引数据异常。

解决方案

直接修改搜索请求的 Size 字段即可调整返回上限,你可以根据预期的最大匹配数设置对应值,若要获取全量匹配结果,既可以先查询总匹配数后再设置对应Size,也可以直接设置一个大于预估总匹配数的数值。

修改后的示例代码如下:

package search

import (
    "testing"

    "github.com/blevesearch/bleve/v2"
)

func TestSearcher(t *testing.T) {
    mapping := bleve.NewIndexMapping()
    searcher, _ := bleve.New("search/src", mapping)
    for i := 0; i < 35; i++ {
        searcher.Index(string(calc.Rand()), "stuff")
    }

    query := bleve.NewMatchQuery("stuff")
    search := bleve.NewSearchRequest(query)
    // 新增此行调整返回结果上限,此处设为100足够覆盖你场景中的35条结果
    search.Size = 100
    searchRez, _ := searcher.Search(search)
    t.Error(len(searchRez.Hits))
}

如果你的数据量级很大,不建议一次性将Size设置过大避免内存占用过高,可以配合From字段做分页遍历:每次查询固定Size的结果,From参数依次递增(0、100、200...),直到返回的Hits数量小于Size即完成全量遍历。

内容的提问来源于stack exchange,提问作者d1nch8g

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 08:15:04