Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 无堵塞搜索井涌_Ruby On Rails_Ruby_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Searchkick - Fatal编程技术网 elasticsearch,searchkick,Ruby On Rails,Ruby,elasticsearch,Searchkick" /> elasticsearch,searchkick,Ruby On Rails,Ruby,elasticsearch,Searchkick" />

Ruby on rails 无堵塞搜索井涌

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}],

我使用searchkick()作为数组索引我的一些数据,它几乎可以正常工作:)

我感兴趣的领域是作者。 我想完成的是搜索“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}
)
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}
)