如何增加(或访问)Go bleve 搜索引擎结果?
How to increase (or access) Go bleve search engine results?
当我尝试使用 bleve 进行搜索查询时,我总是得到 10 个或更少的结果。我怎样才能增加这个限制或在所有数据之间进行搜索?
这是代码示例,我希望得到 35 个结果,但得到 10 个(ps calc.Rand()
函数给出随机字节):
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)
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 个值?
在 SearchRequest
上设置字段 Size
:
Size/From describe how much and which part of the result set to return.
search := bleve.NewSearchRequest(query)
search.Size = 35 // or the page size you want
searchRez, _ := searcher.Search(search)
fmt.Println(len(searchRez.Hits)) // prints 35
或使用分页,您可以根据页面大小递增地设置字段 From
。一个人为的例子:
count, _ := searcher.DocCount()
for i := 0; i < int(count); i += 10 /* page size */ {
search.From = i
searchRez, _ := searcher.Search(search)
fmt.Println(len(searchRez.Hits)) // prints 10 10 10 5
}
当我尝试使用 bleve 进行搜索查询时,我总是得到 10 个或更少的结果。我怎样才能增加这个限制或在所有数据之间进行搜索?
这是代码示例,我希望得到 35 个结果,但得到 10 个(ps calc.Rand()
函数给出随机字节):
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)
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 个值?
在 SearchRequest
上设置字段 Size
:
Size/From describe how much and which part of the result set to return.
search := bleve.NewSearchRequest(query)
search.Size = 35 // or the page size you want
searchRez, _ := searcher.Search(search)
fmt.Println(len(searchRez.Hits)) // prints 35
或使用分页,您可以根据页面大小递增地设置字段 From
。一个人为的例子:
count, _ := searcher.DocCount()
for i := 0; i < int(count); i += 10 /* page size */ {
search.From = i
searchRez, _ := searcher.Search(search)
fmt.Println(len(searchRez.Hits)) // prints 10 10 10 5
}