have you tried setting sortMissingLast="true" in your schema.xml? Something like...
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/> or perhaps in your individual field definition instead. The schema.xml examples have additional information that you really should scan at least.... HTH Erick On Thu, Dec 31, 2009 at 8:53 AM, Joel Nylund <jnyl...@yahoo.com> wrote: > Hi, > > After some further investigation, it turns out that null fields were > sorting first, so if the title was null it was coming up first. This is true > even with 1.5 and collatedROOT. (I tried on last nights build). > > So let me change my question, how do I make items with null values sort > last? > > thanks > Joel > > > On Dec 30, 2009, at 3:11 PM, Joel Nylund wrote: > > Hi, so this is only available in 1.5? >> >> I tried in 1.4 and got : >> >> org.apache.solr.common.SolrException: Error loading class >> 'solr.CollationKeyFilterFactory' >> >> Is there a way to do this in 1.4? >> >> The link Shalin sent is a 1.5 link I think. >> >> thanks >> Joel >> >> On Dec 25, 2009, at 10:52 PM, Robert Muir wrote: >> >> Hello, as Shalin said, you might want to try CollationKeyFilterFactory. >>> >>> Below is an example (using the multilingual root locale), where the >>> spaces will sort after the letters and numbers as you mentioned, but >>> it will still not be case-sensitive. This is because strength is >>> 'secondary'. >>> >>> But are you really sure you want the spaces sorted after the letters >>> and numbers? Or instead do you just want them ignored for sorting? If >>> this is the case, then try 'primary', so that spaces, punctuation, >>> accents and things like that in addition to case are ignored in the >>> sort: for example "Test-1234" and " test1234" sort the same with >>> primary, but not with secondary (the one with leading spaces will sort >>> last) >>> >>> If all else fails, you can write custom rules for it too, as Shalin >>> mentioned. >>> >>> <fieldType name="collatedROOT" class="solr.TextField"> >>> <analyzer> >>> <tokenizer class="solr.KeywordTokenizerFactory"/> >>> <filter class="solr.CollationKeyFilterFactory" >>> language="" >>> strength="secondary" >>> /> >>> </analyzer> >>> </fieldType> >>> >>> On Fri, Dec 25, 2009 at 5:37 AM, Shalin Shekhar Mangar >>> <shalinman...@gmail.com> wrote: >>> >>>> >>>> On Thu, Dec 24, 2009 at 11:51 PM, Joel Nylund <jnyl...@yahoo.com> >>>> wrote: >>>> >>>> update, I tried changing to datatype string, and it sorts the numerics >>>>> better, but the other sorts are not as good. >>>>> >>>>> Is there a way to control sorting for special chars, for example, I >>>>> want >>>>> blanks to sort after letters and numbers. >>>>> >>>>> >>>>> In the general case, CollationKeyFilterFactory will do the trick. You >>>> could >>>> create a custom rule set which sorts spaces after letters and numbers. >>>> See >>>> http://wiki.apache.org/solr/UnicodeCollation >>>> >>>> >>>> using alphaOnlySort - sorts nicely for alpha, but numbers dont work >>>>> string - sorts nicely for numbers and letters, but special chars like >>>>> blanks show up first in the list >>>>> >>>>> >>>>> alphaOnlySort has a PatternReplaceFilterFactory which removes all >>>> characters >>>> except a-z. This is the reason behind those wierd results. You could try >>>> removing that filter and see if thats what you need. >>>> >>>> -- >>>> Regards, >>>> Shalin Shekhar Mangar. >>>> >>> >>> >>> >>> -- >>> Robert Muir >>> rcm...@gmail.com >>> >> >> >