gpt4 book ai didi

ruby-on-rails - Rails 应用程序未获取生产中的 schema.xml 更改

转载 作者:行者123 更新时间:2023-12-04 07:30:19 26 4
gpt4 key购买 nike

我们在 Heroku 上运行一个 Rails 应用程序,使用带有 Sidekiq 的 Websolr 插件来排队索引作业。这已经工作了很长时间,但现在我们调整了 schema.xml 以改进子字符串匹配等。

修改后的 schema.xml 可以在本地和 CI 上运行,但生产 Rails 应用程序无法接收它。

这是新架构文件的相关部分:

<fieldType name="text_substr" class="solr.TextField" omitNorms="false">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="10"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>
<dynamicField name="*_substr" stored="false" type="text_substr" multiValued="true" indexed="true"/>

以下是该字段如何用于索引模型:

class Profile < ActiveRecord::Base
searchable do
text :name_similar_match, as: :name_substr do
name
end
end
end

这是我到目前为止所做的:

  • 使用网站上的配置选项卡将修改后的 schema.xml 复制到 Websolr
  • 部署了使用新 Solr 字段的 Rails 代码
  • 通过将 Sidekiq 缩放到 0 然后再次备份来重新启动运行 Sidekiq 的 Heroku worker

当我尝试在生产环境中索引一个 Profile 时,索引作业失败并出现以下错误:

RSolr::Error::Http - 400 错误请求错误:'错误:[doc=Profile 1] 未知字段\'name_substr\'','code'=>400

当我在开发中遇到这种情况时,重新启动 Sidekiq 和 Solr 修复它;尽管没有让它工作,但我已经在生产中重新启动了所有我能做的事情。

一个明显的线索是,生产 Sidekiq 仪表板显示其正常运行时间为 123 天,尽管 Heroku worker 已重新启动。我搜索了文档,但找不到任何实际上重新启动 Sidekiq 的方法。如果有人知道发生了什么,那么我将非常感谢您的帮助:)

最佳答案

此处支持 Websolr!该片段对我来说看起来不错。请注意,通过 Websolr 仪表板更新 schema.xml 将自动将更改部署到 Solr 并重新加载核心,因此无需重新启动任何东西。将更改推送到 Rails 应用应该足以开始使用新字段。

听起来您到目前为止所做的一切都应该有效。介意使用您的索引 URL 发送电子邮件以支持 -at- websolr.com 吗?我们会查看并确保没有其他事情发生。

关于ruby-on-rails - Rails 应用程序未获取生产中的 schema.xml 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46798520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com