我使用Sunspot Solr(2.2.7)在我們的應用中搜索和索引AR模型,但我們在這裏做了一些稍微不同的事情。實際的可索引內容存儲在序列化字段中,並且我已經擴展了Sunspot :: Adapters :: InstanceAdapter和Sunspot :: Adapters :: DataAccessor類來支持我們的用例並註冊這些適配器。太陽黑子Solr未被索引的新字段
我在配置/初始化/ 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阻止
integer :department_ids, multiple: true
到辦公室的設置和重新編制索引,它的工作原理我的本地機器上,但是當我部署到生產環境,新的領域沒有得到已接。
我已經更新託管架構文件以包含新字段,但是在重新建模這些模型之後,當查詢查詢工具中的辦公室時,我仍然看不到新字段。
爲Office作爲回報樣本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到DEBUG但SOLR更新語句並沒有告訴我很多。
SOLR Request (1.6ms) [ path=update parameters={} ]
我試着進入生產Rails的控制檯,手動運行
Sunspot.remove_all!(Office)
,然後運行我的指標任務,但仍然領域沒有得到回升。
我不確定如何進一步調試此問題。
是否需要對託管架構進行更改(我的conf目錄中沒有schema.xml,託管架構文件)。該字段在那裏定義,併爲該字段運行查詢,但返回0結果。
問題是我的初始化程序中的Sunspot.setup代碼需要Apache2和太陽黑子的完全停止以獲取我的更改?我也嘗試過,但沒有看到變化。
或者是因爲我沒有使用默認的Rails AR包含的問題,包括由於略有不同的使用情況我們有缺少的方法,我需要在我的適配器/可索引類中實現?
任何幫助,將不勝感激。