Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Search with explain sometimes fail #25330

Closed
igorbunova opened this issue Jun 21, 2017 · 1 comment
Closed

Search with explain sometimes fail #25330

igorbunova opened this issue Jun 21, 2017 · 1 comment
Assignees
Labels
>bug help wanted adoptme :Search/Search Search-related issues that do not fall into other categories

Comments

@igorbunova
Copy link

Elasticsearch version: 5.4.1

Plugins installed: []

JVM version (java -version): 1.8.0_131

OS version (uname -a if on a Unix-like system): Ubuntu 16.04

Description of the problem including expected versus actual behavior:
search query fails when explain parameter is set to true.

Steps to reproduce:
Use transport client in java code.
Fails randomly in tests, looks like it is data dependent.

Provide logs (if relevant):
Exception in thread "elasticsearch[BHybiKz][search][T#6]" java.lang.AssertionError: input 1.3065281278905116E-105 out of float scope for function score deviation: 1.0
at org.elasticsearch.common.lucene.search.function.CombineFunction.toFloat(CombineFunction.java:133)
at org.elasticsearch.index.query.functionscore.DecayFunctionBuilder$AbstractDistanceScoreFunction$1.explainScore(DecayFunctionBuilder.java:551)
at org.elasticsearch.common.lucene.search.function.FiltersFunctionScoreQuery$CustomBoostFactorWeight.explain(FiltersFunctionScoreQuery.java:220)
at org.apache.lucene.search.IndexSearcher.explain(IndexSearcher.java:723)
at org.apache.lucene.search.IndexSearcher.explain(IndexSearcher.java:700)
at org.elasticsearch.search.internal.ContextIndexSearcher.explain(ContextIndexSearcher.java:140)
at org.elasticsearch.search.fetch.subphase.ExplainFetchSubPhase.hitExecute(ExplainFetchSubPhase.java:41)
at org.elasticsearch.search.fetch.FetchPhase.execute(FetchPhase.java:161)
at org.elasticsearch.search.SearchService.executeFetchPhase(SearchService.java:298)
at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:273)
at org.elasticsearch.action.search.SearchTransportService$6.messageReceived(SearchTransportService.java:339)
at org.elasticsearch.action.search.SearchTransportService$6.messageReceived(SearchTransportService.java:336)
at org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:69)
at org.elasticsearch.transport.TransportService$7.doRun(TransportService.java:627)
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:638)
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

@jpountz
Copy link
Contributor

jpountz commented Jun 21, 2017

I think we should just remove this assertion that failed, we can't guaratee it will pass all the time.

@tlrx tlrx added :Search/Search Search-related issues that do not fall into other categories help wanted adoptme >bug labels Jun 22, 2017
jpountz added a commit to jpountz/elasticsearch that referenced this issue Jul 20, 2017
We cannot guarantee that the result of computations will be in the float range,
since it depends on the data and how scores are computed. We already use doubles
as intermediate representations and cast to a float as a final step, which is
the right thing to do. Small doubles will just be rounded to zero, there is not
much we can or should do about it.

Closes elastic#25330
jpountz added a commit that referenced this issue Jul 25, 2017
We cannot guarantee that the result of computations will be in the float range,
since it depends on the data and how scores are computed. We already use doubles
as intermediate representations and cast to a float as a final step, which is
the right thing to do. Small doubles will just be rounded to zero, there is not
much we can or should do about it.

Closes #25330
jpountz added a commit that referenced this issue Jul 25, 2017
We cannot guarantee that the result of computations will be in the float range,
since it depends on the data and how scores are computed. We already use doubles
as intermediate representations and cast to a float as a final step, which is
the right thing to do. Small doubles will just be rounded to zero, there is not
much we can or should do about it.

Closes #25330
jpountz added a commit that referenced this issue Jul 25, 2017
We cannot guarantee that the result of computations will be in the float range,
since it depends on the data and how scores are computed. We already use doubles
as intermediate representations and cast to a float as a final step, which is
the right thing to do. Small doubles will just be rounded to zero, there is not
much we can or should do about it.

Closes #25330
jpountz added a commit that referenced this issue Jul 25, 2017
We cannot guarantee that the result of computations will be in the float range,
since it depends on the data and how scores are computed. We already use doubles
as intermediate representations and cast to a float as a final step, which is
the right thing to do. Small doubles will just be rounded to zero, there is not
much we can or should do about it.

Closes #25330
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
>bug help wanted adoptme :Search/Search Search-related issues that do not fall into other categories
Projects
None yet
Development

No branches or pull requests

3 participants