测试环境中的Searchkick映射不使用`fields`选项

时间:2017-02-09 20:05:38

标签: ruby-on-rails ruby elasticsearch rspec searchkick

从Searchkick 1.5.1升级到2.x后,fields选项不再作为搜索的一部分工作,而是仅在测试环境中工作。例如,如果有一个标题为"已完成":

的课程
Lesson.reindex
Lesson.searchkick_index.refresh
Lesson.search("Completed", fields: [:title])

在测试中不会返回任何结果,但是:

Lesson.reindex
Lesson.searchkick_index.refresh
Lesson.search("Completed")

意愿。它似乎与索引是如何重新索引有关...而不是实际搜索,因为如果你从测试内部搜索开发索引,它可以工作:

Lesson.search("Completed", fields: [:title], index_name: :lessons_development)
假设它们存在,

会返回命中。

我在this github issue

的调试输出中添加了更多详细信息

任何想法都会非常感激!

1 个答案:

答案 0 :(得分:0)

也许,如果您在Rails Console上建立索引,则退出一次并重新启动,然后运行Lesson.reindex。我遇到了同样的问题(索引未通过reindex方法更改),