[英]Searchkick without stemming
我用searchkick( https://github.com/ankane/searchkick )作为一个数组索引我的一些数据,它几乎正常:)
def search_data
{isbn: isbn,
title: title,
abstract_long: abstract_long,
authors: authors.map(&:name)}
end
我感兴趣的领域是作者 。 我想要完成的是搜索“Marias”,并找到所有真正拥有姓氏的作者(Javier Marias),而不是Searchkick返回的所有Maria / Mario / Marais,并将它们与更重要的是。
这就是我现在搜索的方式
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}
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.