Ruby on rails 无堵塞搜索井涌
我使用searchkick()作为数组索引我的一些数据,它几乎可以正常工作:) 我感兴趣的领域是作者。 我想完成的是搜索“Marias”,找到所有在姓氏中有确切字符串的作者,比如(Javier Marias),而不是Searchkick返回的所有Maria/Mario/Marais,并让他们具有更高的优先级 这就是我现在搜索的方式Ruby on rails 无堵塞搜索井涌,ruby-on-rails,ruby,
elasticsearch,searchkick,Ruby On Rails,Ruby,
elasticsearch,Searchkick,我使用searchkick()作为数组索引我的一些数据,它几乎可以正常工作:) 我感兴趣的领域是作者。 我想完成的是搜索“Marias”,找到所有在姓氏中有确切字符串的作者,比如(Javier Marias),而不是Searchkick返回的所有Maria/Mario/Marais,并让他们具有更高的优先级 这就是我现在搜索的方式 Book.search(@search_key, fields: [:authors, :title, {isbn: :exact}],
Book.search(@search_key,
fields: [:authors, :title, {isbn: :exact}],
boost_by: {authors: 10, title: 5, isbn: 1})
这可能吗?TIA在Elasticsearch中,它有一个定期的匹配来处理这个案例,但被Searchkick放弃了。 在这种情况下,您可以选择一种绕行方式:
def search_data
{
isbn: isbn,
title: title,
abstract_long: abstract_long,
author_ids: authors.map(&:id)
}
end
搜索:
author_ids = Author.where(surname: 'Marias').map(&:id)
Book.search(
@search_key,
where: {author_ids: {in: author_ids}},
fields: [:title, {isbn: :exact}],
boost_by: {title: 5, isbn: 1}
)
author_ids = Author.where(surname: 'Marias').map(&:id)
Book.search(
@search_key,
where: {author_ids: {in: author_ids}},
fields: [:title, {isbn: :exact}],
boost_by: {title: 5, isbn: 1}
)