當我試圖用bleve進行搜索查詢時,我總是得到10個或更少的結果。我怎樣才能增加這個限制或在所有資料之間進行搜索呢?
下面是代碼例子,我期望得到35個結果,但得到10個(ps calc.Rand()函式給出隨機位元組):
package search
import (
"測驗"/span>
"github.com/blevesearch/bleve/v2"/span>
)
func TestSearcher(t *testing.T){
mapping := bleve.NewIndexMapping()
searcher, _ := bleve.New("search/src"/span>, mapping)
for i := 0; i < 35; i {
searcher.Index(string(calc.Rand()), "stuff")
}
query := bleve.NewMatchQuery("stuff")
search := bleve.NewSearchRequest(query)
searchRez, _ := searcher.Search(search)
t.Error(len(searchRez.Hits))
}
我得到的結果是:
----fail: TestSearcher (2.33s)
/Users/ ... /search/search_test.go:86: 10
我期望的結果是:
---fail: TestSearcher (2.33s)
/Users/ ... /search/search_test.go:86: 35
我如何訪問這個索引所存盤的所有 35 個值?
uj5u.com熱心網友回復:
在SearchRequest上設定欄位尺寸:
Size/From描述了要回傳多少和哪一部分的結果集。
search := bleve.NewSearchRequest(query)
search.Size = 35 //或你想要的頁面大小。
searchRez, _ := searcher.Search(搜索)
fmt.Println(len(searchRez.Hits))
或者用分頁法,你根據頁面大小來逐步設定欄位From。一個臆造的例子:
count, _ := searcher.DocCount()
for i := 0; i < int(count); i = 10 /* 頁面大小 */ {
search.From = i
searchRez, _ := searcher.Search(search)
fmt.Println(len(searchRez.Hits)) // printts 10 10 10 5.
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/329367.html
標籤:
