Searchkick:计算索引中的记录

时间:2017-11-17 06:18:15

标签: ruby-on-rails searchkick

我可以在生产服务器上打开一个Rails控制台并进行搜索*,然后依靠我的ElasticSearch数据库。

s = Sentence.search '*'
s.count

...5, 381587, 381590, 381597, 381600, 381602, 381604, 381618, 381632, 381637, 381640, 381642, 381645, 381648, 381670, 381678, 381679, 381686, 381693, 381698, 381712, 387518, 387519, 387535, 387541)
=> 1000

这里有两个问题

(1)它是1000的分页。这个集合在哪里?如何在索引中的条目总数中忽略它?

(2)搜索带回Rails ID而不是ElasticSearch ID。这是否意味着我正在进行数据库调用?

如何使用Searchkick通过Rails控制台直接从ElasticSearch获取条目数?

1 个答案:

答案 0 :(得分:2)

无论分页如何,您都可以使用total_count方法获取完整计数。

Y

(2)搜索带回Rails ID而不是ElasticSearch ID。这是否意味着我正在进行数据库调用?

根据我的理解,searchkick会为表中的每一行创建一个elasticsearchid。然后,当您搜索它时,它将搜索elasticsearch并带来与搜索关键字匹配的ID列表,然后根据返回的elasticsearchids从数据库中提取所有记录。