我可以在生产服务器上打开一个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获取条目数?
答案 0 :(得分:2)
无论分页如何,您都可以使用total_count方法获取完整计数。
Y
(2)搜索带回Rails ID而不是ElasticSearch ID。这是否意味着我正在进行数据库调用?
根据我的理解,searchkick会为表中的每一行创建一个elasticsearchid。然后,当您搜索它时,它将搜索elasticsearch并带来与搜索关键字匹配的ID列表,然后根据返回的elasticsearchids从数据库中提取所有记录。