- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我使用 golang elastic 5 API 在 ElasticSearch 中运行查询。我使用 searchResult.TotalHits() 检查命中数,它给了我一个很大的数字(超过 100),但是当我尝试迭代命中时,它只给出了 10 个实体。此外,当我检查 len(searchResult.Hits.Hits) 变量时,我得到 10。
当我选择少于 10 个实体时,我尝试了不同的查询并且效果很好。
query = elastic.NewBoolQuery()
ctx := context.Background()
query = query.Must(elastic.NewTermQuery("key0", "term"),
elastic.NewWildcardQuery("key1", "*term2*"),
elastic.NewWildcardQuery("key3", "*.*"),
elastic.NewRangeQuery("timestamp").From(fromTime).To(toTime),
)
searchResult, err = client.Search().Index("index").
Query(query).Pretty(true).Do(ctx)
fmt.Printf("TotalHits(): %v", searchResult.TotalHits()) //It gives me 482
fmt.Printf("length of the hits array: %v", len(searchResult.Hits.Hits)) //It gives 10
for _, hit := range searchResult.Hits.Hits {
var tweet Tweet
_ = json.Unmarshal(*hit.Source, &tweet)
fmt.Printf("entity: %s", tweet) //It prints 10 entity
}
我做错了什么? SearchResult 中是否有批处理或可能的解决方案?
最佳答案
您的问题中未指定,因此如果您使用的是不同的客户端库(例如官方客户端),请发表评论,但您似乎使用的是 github.com/olivere/elastic。基于该假设,您看到的是默认结果集大小 10。TotalHits
数字是与您的查询匹配的文档总数; Hits
数字是当前结果中返回的数量,您可以使用 Size
对其进行操作、排序
和来自
。 大小
记录为:
Size is the number of search hits to return. Defaults to 10.
关于elasticsearch - 为什么 searchResult.TotalHits() 与 len(searchResult.Hits.Hits) 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54769677/
我在运行 Lucene 官方网站上的搜索演示示例代码时遇到问题。里面有这部分代码: TopDocs results = searcher.search(query, 5); ScoreDoc[] hi
我想使用 Lucene 索引(版本 4.3.1)查找查询的总命中次数。 我明白我必须使用 https://lucene.apache.org/core/5_3_0/core/org/apache/lu
我使用 golang elastic 5 API 在 ElasticSearch 中运行查询。我使用 searchResult.TotalHits() 检查命中数,它给了我一个很大的数字(超过 100
我是一名优秀的程序员,十分优秀!