Frage

Auf einem Rails-Projekt, ich bin mit Sphinx zusammen mit Denken Sphinx-Plugin. I-Index eine Tabelle mit einem Attribut: foo, die ein Schwimmer ist.

Ihr gewünschtes Verhalten, wenn für die Spaltensortierung. Foo, dass Null-Werte immer am Ende der Liste erscheinen würden, z

id; foo (order foo desc)
-------
1; 5
2; 3
3; -4
4: -5
5: nil
6: nil


id; foo (order foo asc)
-------
4: -5
3; -4
2; 3
1; 5
5: nil
6: nil

Wenn es normal war, SQL, ich würde Art wie:

:order => "(foo IS NULL) ASC, foo DESC"

Aber es scheint nicht möglich zu sein, da ich NULL-Werte denken übersetzt werden auf 0 (das ist wahr?). sphinx Ordnungs Ausdrücke scheint mein Wagen nicht richtig zu sortieren.

Hat jemand dieses Problem lösen oder hat eine Idee, wie es zu tun?

War es hilfreich?

Lösung

Die Lösung, die Sie zur Verfügung gestellt haben, ist, was würde ich vorschlagen, -. Wie ja, du bist richtig, Sphinx NULLs als 0en behandelt

Andere Tipps

Eine Lösung, die ich mit in der Zwischenzeit kam zu Index ein zusätzliches Attribut, wie folgt aus:

define_index do 
  indexes foo, :sortable => true
  has "foo IS NULL", :as => :foo_nil, :sortable => true
end

Was lässt mich so bestellen

:order => "foo_nil ASC, foo DESC"

Es ist ein bisschen ungeschickt, zumal ich viele Attribute, die ich so bestellt werden sollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top