加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 仅当可搜索字段发生变化时的太阳黑子索引

发布时间:2020-12-16 19:15:33 所属栏目:百科 来源:网络整理
导读:我们在最近的项目中使用太阳黑子进行搜索.我们还使用设计并将我们的用户模型编入索引,如下所示: searchable do text :fname text :lname text :email text :description text :twitter_usernameend 使用此设置,除非solr正在运行,否则用户甚至无法登录.这意
我们在最近的项目中使用太阳黑子进行搜索.我们还使用设计并将我们的用户模型编入索引,如下所示:
searchable do
  text :fname
  text :lname
  text :email
  text :description
  text :twitter_username
end

使用此设置,除非solr正在运行,否则用户甚至无法登录.这意味着在每次保存User模型时,都会与我们的solr服务器进行一些通信(重建索引?),即使可搜索的字段都没有更改.它是否正确?

我们还有许多其他模型被太阳黑子索引,这些模型具有经常更新的非可搜索字段.似乎太阳黑子在所有这些更新上重新索引它们.

当可搜索字段发生变化时,是否有办法将太阳黑子配置为仅与solr接口?

解决方法

我假设你有最新版本的太阳黑子宝石.

>每次模型更改时,太阳黑子重新编制索引.要调整此行为(请参阅options for searchable):

可搜索的:ignore_attribute_changes_of => [:average_rating,:permalink] do
文字:标题
结束

看看源代码:https://github.com/outoftime/sunspot/blob/master/sunspot_rails/lib/sunspot/rails/searchable.rb
>您的网站应该仍然有效,直到第一次要求解决:

>全文搜索请求
>索引请求

您可能每次用户登录时都会对用户模型进行更新,从而触发重新索引.

更多提示:

>事实上,这不是索引需要花费很多时间,而是提交命令;默认情况下,在每个Web请求的末尾发出commit命令;这在生产环境中非常昂贵.我建议你到change the policy到autocommit after X seconds;
>如果你想要修补太阳黑子,以便你的网站在solr服务器出现故障的情况下工作,我建议你看一下这个gem,即为测试环境mock服务器界面:sunspot_matchers

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读