2012-01-16 22 views
1

我想從價格從較小到較大的價格訂購太陽黑子搜索結果。太陽黑子order_by與nil值排序最後

order_by :price, :asc 

但是有一些項目沒有價格價值。他們被放置在結果的前面。有沒有一種很好的方式來顯示這些結果而不是將它們排除在外?

回答

2

添加屬性「sortMissingLast =真」的價格字段的定義在schema.xml中

0

是啊,你應該要補充sortMissingLast =真到了現場schema.xml中,這樣的事情:

<schema name="sunspot" version="1.0"> 
    <types> 
    ... 
    <!-- My custom types --> 
    <fieldType name="sml_int" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/> 
    </types> 
    <fields> 
    ... 
    <!-- My custom fields --> 
    <dynamicField name="*_sml_int" type="sml_int" multiValued="false" indexed="true"/> 
    </fields> 
    ... 
</schema> 

然後在你的代碼,你可以這樣做:

class MyModel < ActiveRecord::Base 
    searchable do 
    integer :price, as: :price_sml_int 
    end 
end