Hi, I want to do a similar sorting function query to the way reddit handles its ranking. I have the date stored in a <fieldType name="tdate" class="solr.TrieDateField" omitNorms="true" precisionStep="6" positionIncrementGap="0"/>
I also have the number of twitter, facebook and reads from our site stored. below is the pseudo code that I want to work out. var t = (CreationDate - 1131428803) / 1000; var x = FacebookCount + TwitterCount + VoteCount - DownVoteCount; var y = 0; if (x > 0) { y = 1; } else if (x == 0) { y = 0; } else if (x < 0) { y = -1; } var z = 1; var absX = Math.abs(x); if (absX >= 1) { z = absX; } var ranking = (Math.log(z) / Math.LN10) + ((y * t) / 45000); I have no Java experience so I cannot re-write it as a custom function. This is my current query I am trying to use. http://127.0.0.1:8983/solr/select?q.alt=*:*&fq=content_type:news&start=0&rows=10&wt=json&indent=on&omitHeader=true &fl=id,name,excerpt,timestamp,domain,source,facebook,twitter,read,imageheight &defType=dismax &tt=div(sub(_val_:timestamp,1131428803),1000) &xx=sub(sum(facebook,twitter,read),0) &yy=map(query($xx),1,99999999,1,map(query($xx),0,0,0,map(query($xx),-99999999,-1,-1,0))) &zz=map(abs(query($xx)),-999999999,0,1) &sort=sum(div(log(query($zz)),ln(10)),div(product(query($yy),query($tt)),45000)) desc Currently I am getting errors relating to my date field when trying to convert it from the TrieDate to timestamp with the _val_:MyDateField. Also I wanted to know if their is another way to do this? If my query is even correct. Thanks in advance Richard -- View this message in context: http://lucene.472066.n3.nabble.com/Sorting-algorithm-tp3014549p3014549.html Sent from the Solr - User mailing list archive at Nabble.com.