Sunspot 검색 결과를 작은 값에서 큰 값으로 정렬하려고합니다.Sunspot order_by 정렬이 nil 값인 마지막 값
order_by :price, :asc
그러나 일부 품목에는 가격이 없습니다. 그들은 결과의 전면에 놓입니다. 그 (것)들을 밖으로 남겨두기 대신에 끝에 표시하는 좋은 방법 있는가?
Sunspot 검색 결과를 작은 값에서 큰 값으로 정렬하려고합니다.Sunspot order_by 정렬이 nil 값인 마지막 값
order_by :price, :asc
그러나 일부 품목에는 가격이 없습니다. 그들은 결과의 전면에 놓입니다. 그 (것)들을 밖으로 남겨두기 대신에 끝에 표시하는 좋은 방법 있는가?
의 schema.xml
네의 가격 필드의 정의에 속성 "sortMissingLast = true"로 추가, 당신은 다음과 같이의 schema.xml의 필드에 sortMissingLast = 사실 무언가를 추가해야한다 :
<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