我正在使用 Cassandra + Solr,查询使用“solr_query”,总是获得最多 10 个结果。 这是金额:
<requestHandler class="solr.SearchHandler" default="true" name="search">
<lst name="defaults">
<int name="rows">10</int>
</lst>
</requestHandler>
我使用eachRow 对结果进行分页,但它不起作用,它只获得前 10 个结果,仅此而已。
var query = 'SELECT * FROM contacts WHERE solr_query = ?';
var solr_query = '{"q":"some_query"}';
this.client.eachRow(query, [solr_query], { prepare: true, autoPage : true, fetchSize: 100 }, function(index, result) {
}, callbackFunc);
在 fetchSize 中,我输入了 100,但仍然只得到 10 个结果,如果我向查询添加 LIMIT,它将起作用,但仍然无法分页,它会在第一页之后停止。
-- 更新 我也尝试使用这个函数并得到相同的结果(10):
this.client.stream(query, [solr_query], { prepare: true }).on('readable', function () {
var row;
while (row = this.read()) {
contacts.push(row);
}
})
.on('end', function () {
console.log(contacts.length); // 10
});
最佳答案
使用搜索组件时,有 2 个不同的设置 - LIMIT
控制 Cassandra 将返回的条目数,fetchSize
指定 Cassandra 返回的页面有多大。如果您有很多结果,那么您需要相应地调整LIMIT
,尽管对于大数据集来说它可能不是非常理想。
关于node.js - Nodejs Cassandra 自动分页不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49815581/