> I have a set of documents that have volume and issue numbers > represented as strings (e.g. 1, 10, 2, 23). If I use the following > collation, I get a nice numeric sort without having to pad or > otherwise normalize the data, but performance suffers. Is there an > index I can add that would speed up the kind of sorting that this > collation needs to do? > > for $i in cts:search(doc()//article-title,"water") > order by $i/root()//volume collation "http://marklogic.com/collation/ > en/MO" > return > $i/root()//volume
I was curious re the use of collataion -- are your values actually numeric values? If so I'd have assumed a way to do this sort of sorting would be something like for $d in $set order by xs:decimal($d/volume), xs:decimal($d/issue) return ... and so forth. Is this naive? I understand why it wouldn't work for things like '10a' or something, but for pure numbers, even if they are padded with leading zeros, I had assumed a cast would work. Jim - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - James A. Robinson [EMAIL PROTECTED] Stanford University HighWire Press http://highwire.stanford.edu/ +1 650 7237294 (Work) +1 650 7259335 (Fax) _______________________________________________ General mailing list [email protected] http://xqzone.com/mailman/listinfo/general
