You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Michael McCandless (JIRA)" <ji...@apache.org> on 2017/09/04 23:00:00 UTC

[jira] [Created] (LUCENE-7953) Can we include the expression string in the stack frame for problems evaluating Lucene expressions?

Michael McCandless created LUCENE-7953:
------------------------------------------

             Summary: Can we include the expression string in the stack frame for problems evaluating Lucene expressions?
                 Key: LUCENE-7953
                 URL: https://issues.apache.org/jira/browse/LUCENE-7953
             Project: Lucene - Core
          Issue Type: Improvement
          Components: modules/expressions
            Reporter: Michael McCandless
            Priority: Minor


I'm working with rather complex expressions to compute relevance, and when there is a problem, I see a stack trace like this:

{noformat}
Server error:
java.lang.IllegalArgumentException: field "is_prime" has type bin, which cannot be used in an expression
        at com.amazon.lucene.Searcher$IndexBindings.getDoubleValuesSource(Searcher.java:373)
        at com.amazon.lucene.Searcher$QueryBindings.getDoubleValuesSource(Searcher.java:302)
        at org.apache.lucene.expressions.ExpressionValueSource.<init>(ExpressionValueSource.java:45)
        at org.apache.lucene.expressions.Expression.getDoubleValuesSource(Expression.java:97)
        at com.amazon.lucene.Searcher$IndexBindings.getDoubleValuesSource(Searcher.java:378)
        at com.amazon.lucene.Searcher$QueryBindings.getDoubleValuesSource(Searcher.java:302)
        at org.apache.lucene.expressions.ExpressionValueSource.<init>(ExpressionValueSource.java:45)
        at org.apache.lucene.expressions.Expression.getDoubleValuesSource(Expression.java:97)
        at com.amazon.lucene.Searcher$IndexBindings.getDoubleValuesSource(Searcher.java:378)
        at com.amazon.lucene.Searcher$QueryBindings.getDoubleValuesSource(Searcher.java:302)
        at org.apache.lucene.expressions.ExpressionValueSource.<init>(ExpressionValueSource.java:45)
        at org.apache.lucene.expressions.Expression.getDoubleValuesSource(Expression.java:97)
        at com.amazon.lucene.Searcher$IndexBindings.getDoubleValuesSource(Searcher.java:378)
        at com.amazon.lucene.Searcher$QueryBindings.getDoubleValuesSource(Searcher.java:302)
        at com.amazon.lucene.http.SearchA9Handler.handleInner(SearchA9Handler.java:459)
        at com.amazon.lucene.http.SearchA9Handler.handle(SearchA9Handler.java:99)
        at <server>
{noformat}

It's my code that's throwing the exception, but it would sure be nice if all the intermediate stack frames in the exception would include the expression text (or maybe some smallish prefix of it, in case it's gigantic), because I think here I have 3 levels of expression, and it'd be nice to know which sub-expressions, sub-sub-expressions, etc., led to the offensive {{is_prime}} field.

I don't know how to do this, but e.g. I know our randomizedtesting lib is able to modify stack to insert test seeds, so it seems to be possible.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org