lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael McCandless (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LUCENE-7953) Can we include the expression string in the stack frame for problems evaluating Lucene expressions?
Date Tue, 05 Sep 2017 19:40:00 GMT

    [ https://issues.apache.org/jira/browse/LUCENE-7953?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16154175#comment-16154175
] 

Michael McCandless commented on LUCENE-7953:
--------------------------------------------

Thanks for the explanation [~thetaphi]!

bq. Instead, I would only suggest that any exception thrown by the ExpressionValueSource's
ctor maybe preserves the expression as part of the message.

I like this approach; so maybe in {{ExpressionValueSource}} ctor, if there is an exception
calling {{getDoubleValuesSource}}, we could catch that and throw a new exception with the
expression in its message, with the inner exception as its cause, maybe.

> 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


Mime
View raw message