繁体   English   中英

Searchkick没有阻止

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM