Sunspot Solr新领域没有被索引



我正在使用Sunspot Solr(2.2.7(在我们的应用程序中搜索和索引AR模型,但是我们在这里做一些不同的事情。实际可索引的内容存储在一个串行的字段中,我已经扩展了Sunspot ::适配器:: InstanceDapter和Sunspot :: Adapters :: DataAccessor类支持我们的用例并注册了这些适配器。

我在config/initializers/sunspot.rb类中定义了可索引字段,示例配置看起来像

Sunspot.setup(Office) do
  time :published_at, trie: true
  integer :id
  text :name
  integer :region_id
  boolean :is_active
  text :address
  text :city
  text :postal_area
  string :postal_code
  string :abbreviation
  integer :person_ids, multiple: true
  string :supported_locales, multiple: true
  string :slug
end

一切似乎都在开发和生产(Ubuntu 16.04运行Solr 6.4.2(。

当我需要在索引中添加一个新字段并尝试将此更改添加到生产中时,就会遇到的问题。当我将上线添加到Sunspot.setup Block

integer :department_ids, multiple: true

在办公室设置和重新索引的设置中,它可以在我的本地机器上工作,但是当我部署到生产时,新领域不会被拾取。

我已经更新了托管 - 施加文件以包含新字段,但是在我重新索引模型之后,当我在查询工具中查询办公室时,我仍然看不到新字段。

返回办公室的样本JSON响应看起来像:

{
  "id":"Office 1",
  "type":["Office", "Model"],
  "class_name":["Office"],
  "published_at_dt":"2017-03-22T23:32:22Z",
  "id_i":1,
  "search_name_s":"atlanta",
  "region_id_i":2,
  "is_active_b":true,
  "postal_code_s":"30309",
  "abbreviation_s":"ATL",
  "person_ids_im":[513,
    571,
    1392,
    1722,
    1723],
  "supported_locales_sm":["en"],
  "slug_s":"houston",
  "name_text":["Houston"],
  "address_text":["1 Main Street<br/>Suite 1"],
  "city_text":["Houston"],
  "postal_area_text":["TX"],
  "_version_":1565750688671072256},
}

我已经将log_level设置为调试,但是solr Update语句不会告诉我太多。

SOLR Request (1.6ms)  [ path=update parameters={} ]

我尝试进入生产中的栏杆控制台,手动运行

Sunspot.remove_all!(Office)

然后运行我的索引任务,但该字段仍未被拾取。

我不确定如何进一步调试此问题。

是我需要对托管 - 施加的更改中的问题(我的conf目录中没有schema.xml,只有托管 - 造型文件(。该字段是在此处定义的,并为该字段运行查询工作,但返回0结果。

Sunspot.SETUP代码在我的初始化器中是否需要完全停止Apache2和Sunspot才能掌握我的更改?我也尝试过,但没有看到改变。

或问题是我不使用默认的导轨AR,因为我们的用例略有不同,并且我需要在适配器/可索引类中实现丢失的方法?

对此的任何帮助将不胜感激。

因此,在解决了为什么不进行更新的黑子配置之后,有人建议我检查春天是否在我们的生产环境上运行。由于某种原因,它是并且正在阻止新的黑子配置重新定位。在杀死了春季的所有运行实例并重新删除该应用程序之后,拾取了新的更改,事情似乎在起作用。

最新更新