'out of float scope for function score deviation' error using function_score and a gauss decay


(Jilles van Gurp) #1

Using elasticsearch 1.3.4

I have an index with user events and I'm trying to use function_score to
get a sensible order by date (without using sort). The query below works,
but only for relatively small result sets. While trying to test whether
this orders things correctly (following up on a report that they were not),
I ran into this error while trying the query with 10K events spread over
1000 days. With just a 100 days it works fine. But with 10000 events and
some a few years back the gauss of 10d seems to trigger some corner case in
elasticsearch that produces an error.

Query Failed [Failed to execute main query]]; nested: AssertionError[input
4.3876046562428303E-75 out of float scope for function score deviation:
1.0]; }

I've since changed the query slightly to using exp decay function with 365d
and that seems to work better for my usecase. However, I'm wondering
whether gauss throwing an error like this should be considered a bug? Why
not simply round to 0 if the difference becomes to small to be meaningful?

Here's the original query. Note, it is programmatically generated and can
be a lot more complex, which is why I like using a function_score here
instead of a sort. But if you are wondering about the nested term filter,
that's the reason.
{
"from":0,
"size":100000,
"version":true,
"query":{
"filtered":{
"query":{
"function_score":{
"query":{
"match_all":{
}},
"score_mode":"max",

"functions":[
{
"gauss":{
"event_at":{
"origin":"2014-10-06T15:51:35Z",
"scale":"10d"
}}}]}},
"filter":{
"and":[
{
"or":[
{
"term":{
"user_id":"GqIxYkaEz_L0_7Ge299X6Q"
}}]}]}}}}

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/531330c4-3fda-4c16-8780-243bcfab76d8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


(Steven) #2

+1
this looks like a bug


(system) #3