2011-08-18 59 views
2

我遇到了我的太陽黑子和solr問題。在開發中它像charme一樣工作,但在生產中,我從rails生產日誌中得到以下錯誤:太陽黑子solr未定義字段類型

RSolr :: RequestError(Solr響應:未定義字段類型): app/controllers/search_controller.rb:7:in `索引'

我想它與schema.xml有關。但我對solr很陌生。那麼有人能幫助我嗎?

OK:
控制器

def index 
unless params[:q].blank? 
    @search = Question.search do 
    fulltext params[:q] 
    end 
    @results = @search.results 

else 
    @results = nil 
end 
@searchterm = params[:q] 

模型(問題)

...

searchable do 
    text :title 
    text :content 
end 
+3

顯示您的模型和控制器代碼,這幾天我們是短水晶球:) –

回答

6

這聽起來像你的生產Solr的實例未使用太陽黑子的schema.xml

type字段應在太陽黑子的標準schema.xml中定義,它用於索引對象的型號名稱,以供以後用於過濾搜索。看到一條錯誤消息,說明type未定義,這意味着您使用的是除太陽黑子以外的schema.xml

這可能是因爲您正在使用您在服務器上安裝Solr的方法使用其他一些示例或默認配置集。如果可以,請詳細說明如何設置生產Solr服務器。

+0

我有同樣的問題,我通過這種方法安裝了solr。 https://github.com/sunspot/sunspot/wiki/Configure-Solr-on-Ubuntu%2C-the-quickest-way 我實際上是否必須將我的conf目錄複製到/ usr/share/solr? – kayluhb

+0

kayluhb:是的,沒錯。 –

1

請確保在您的schema.xml中將字段類型設置爲required =「true」,否則重新索引將不包含索引數據中的字段「type」。

<field name="type" stored="true" type="string" multiValued="true" indexed="true" required="true" /> 
+0

謝謝..它爲我工作。 –

3

對於Solr的4.7,從your_app/Solr的/ conf目錄複製schema.xml中和solrconfig.xml中到/ opt/Solr的/ Solr的/ collection1(或任何你Solr的路徑),如果仍無法正常工作,確保你的配置/ sunspot.yml是一樣的東西:

生產: Solr的: 主機名:本地主機端口 :8983 LOG_LEVEL:警告 路徑:/ Solr的/ collection1 #read_timeout:2 #open_timeout:0.5 建議創建另一個核心(my_core)f rom solr網絡界面,將schema.xml和solrconfig.xml複製到該文件夾​​並指向/ solr/my_core的路徑

1

對我來說,它是在Heroku插件Websolr儀表板中,默認配置設置爲blacklight,並且我有將其更改爲太陽黑子。

+0

這個答案真的需要更多的深度,你能否詳細說明。 –

+0

如果您在Heroku和太陽黑子寶石中使用Websolr插件,那麼如果您進入Websolr插件儀表板,則只需點擊配置選項卡中的表示黑色而不是黑色的按鈕即可。不知道你需要什麼其他信息。 – bjacobs

+0

你去那裏了,在動作之間使用>並設置好。 –