Ruby on rails 类型始终为带有Searchkick 4.3.1和ES 7.4的_doc
我们将Searchkick 4.3.1与ElasticSearch 7.4.x一起使用,并注意到所有模型现在都使用typeRuby on rails 类型始终为带有Searchkick 4.3.1和ES 7.4的_doc,ruby-on-rails,ruby,
elasticsearch,Ruby On Rails,Ruby,
elasticsearch,我们将Searchkick 4.3.1与ElasticSearch 7.4.x一起使用,并注意到所有模型现在都使用type\u doc索引。即使Searchkick似乎仍在为索引正确生成一个:\u type 鉴于: 课程公告
\u doc
索引。即使Searchkick似乎仍在为索引正确生成一个:\u type
鉴于:
课程公告
我们的产出如下:
Announcement.searchkick_index.options[:_type].call
=> "announcement"
但是,当我们得到搜索结果时,点击率会返回类型:“\u doc”
:
当我们在多个模型上执行搜索时,这才是真正的问题所在。具体来说,因为这些多模型搜索将对每个模型具有不同的,其中
条件,我们将对这些条件进行范围界定,如下所示:
其中({u或:[{type:''u公告',活动:true},{type:''u事件',即将到来:true}])
既然类型
总是“\u doc”
,这些结果集总是空的。我还尝试在中显式使用\u索引
名称,其中
,但Searchkick返回以下索引的别名:
Announcement.searchkick_index.name
=> "announcements_development"
这是Searchkick的问题吗?因为它似乎仍然应该在索引上适当地设置\u type
。Elasticsearch 7.x删除注释下的以下文章()说:
7.x没有显式类型的索引将使用伪类型名_doc
但这是否适用于这里?似乎Searchkick仍然会设置类型
如果有任何帮助,我们将不胜感激。在执行多个模型搜索时,也许有另一种方法可以将
where
条件限定到特定索引?我也遇到了这个问题,并查看了代码以查找添加的以下内容。我假设选项[:\u type].call
仍然适用于较旧的elasticsearch版本。根据您链接的同一篇文章的建议,您可以添加一个自定义类型字段吗?我也遇到了这个问题,并查看了代码以找到以下添加项。我假设选项[:\u type].call
仍然适用于较旧的elasticsearch版本。根据您链接的同一篇文章的建议,您可以添加自定义类型字段吗?
Announcement.searchkick_index.name
=> "announcements_development"