You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by Apache Wiki <wi...@apache.org> on 2009/10/18 17:38:50 UTC
[Solr Wiki] Update of "FunctionQuery" by YonikSeeley
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Solr Wiki" for change notification.
The "FunctionQuery" page has been changed by YonikSeeley.
The comment on this change is: document ms.
http://wiki.apache.org/solr/FunctionQuery?action=diff&rev1=22&rev2=23
--------------------------------------------------
Example Syntax: '''linear(x,2,4)''' returns 2*x+4
== recip ==
- A reciprocal function with '''recip(myfield,m,a,b)''' implementing a/(m*x+b). m,a,b are constants, x is any arbitrarily complex function.
+ A reciprocal function with '''recip(x,m,a,b)''' implementing a/(m*x+b). m,a,b are constants, x is any numeric field or arbitrarily complex function.
When a and b are equal, and x>=0, this function has a maximum value of 1 that drops as x increases. Increasing the value of a and b together results in a movement of the entire function to a flatter part of the curve. These properties can make this an ideal function for boosting more recent documents when x is rord(datefield).
Example Syntax: '''recip(rord(creationDate),1,1000,1000)'''
+
+ <!> [[Solr1.4]]
+ In Solr 1.4 and later, best practice is to avoid ord() and rord() and derive the boost directly from the value of the date field.
+ See ms() for more details.
== max ==
max(x,c) returns the max of another function and a constant. Useful for "bottoming out" another function at some constant.
Example Syntax: '''max(myfield,0)'''
+
+ == ms ==
+ <!> [[Solr1.4]]
+
+ Returns milliseconds of difference between it's arguments.
+
+ Dates are relative to the Unix or POSIX time epoch, midnight, January 1, 1970 UTC.
+
+ Arguments may be numerically indexed date fields such as !TrieDate (the default in 1.4), or date math (examples in SolrQuerySyntax) based on a constant date or '''NOW'''.
+
+ '''ms()'''
+ Equivalent to '''ms(NOW)''', number of milliseconds since the epoch.
+ '''ms(a)'''
+ Returns the number of milliseconds since the epoch that the argument represents.
+
+ Example: '''ms(NOW/DAY)'''
+
+ Example: '''ms(2000-01-01T00:00:00Z)'''
+
+ Example: '''ms(mydatefield)'''
+ '''ms(a,b)'''
+ Returns the number of milliseconds that {{{b}}} occurs before {{{a}}} (i.e. {{{a - b}}}). Note that this offers higher precision than '''sub(a,b)''' because the arguments are not converted to floating point numbers before subtraction.
+
+ Example: '''ms(NOW,mydatefield)'''
+
+ Example: '''ms(mydatefield,2000-01-01T00:00:00Z)'''
+
+ Example: '''ms(datefield1,datefield2)'''
== top ==
<!> [[Solr1.4]]