Open iDmple opened 9 years ago
Hi,
What version are you running on ?
I think is fixed in most recent versions. I'll check today if possible...
Cheers, Yann
Le mer. 23 sept. 2015 17:12, iDmple notifications@github.com a écrit :
Hi Yann,
I run into a problem with compareProb. I think that v1 is null at this point:
for (String v1 : vs1) { if (v1.equals("")) { continue; }
My data has some values that are null, indeed.
Here is the stacktrace:
Query Failed [Failed to execute main query] at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:163) at org.elasticsearch.search.SearchService.loadOrExecuteQueryPhase(SearchService.java:301) at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:312) at org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:231) at org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:228) at org.elasticsearch.search.action.SearchServiceTransportAction$23.run(SearchServiceTransportAction.java:559) 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) Caused by: java.lang.NullPointerException at org.yaba.entity.script.EntityResolutionScript.computeProb(EntityResolutionScript.java:271) at org.yaba.entity.script.EntityResolutionScript.compare(EntityResolutionScript.java:262) at org.yaba.entity.script.EntityResolutionScript.runAsDouble(EntityResolutionScript.java:500) at org.elasticsearch.common.lucene.search.function.ScriptScoreFunction.score(ScriptScoreFunction.java:100) at org.elasticsearch.common.lucene.search.function.FunctionScoreQuery$FunctionFactorScorer.innerScore(FunctionScoreQuery.java:170) at org.elasticsearch.common.lucene.search.function.CustomBoostFactorScorer$AnyNextDoc.score(CustomBoostFactorScorer.java:133) at org.elasticsearch.common.lucene.search.function.CustomBoostFactorScorer.score(CustomBoostFactorScorer.java:71) at org.apache.lucene.search.FilteredQuery$LeapFrogScorer.score(FilteredQuery.java:308) at org.apache.lucene.search.TopScoreDocCollector$OutOfOrderTopScoreDocCollector.collect(TopScoreDocCollector.java:140) at org.apache.lucene.search.Weight$DefaultBulkScorer.scoreAll(Weight.java:193) at org.apache.lucene.search.Weight$DefaultBulkScorer.score(Weight.java:163) at org.apache.lucene.search.BulkScorer.score(BulkScorer.java:35) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:621) at org.elasticsearch.search.internal.ContextIndexSearcher.search(ContextIndexSearcher.java:191) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:491) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:448) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:281) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:269) at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:157) ... 8 more
— Reply to this email directly or view it on GitHub https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15.
Cordialement, Yann Barraud
Hi,
It's 1.7.2 which is the current elasticsearch version as well.
Thanks a lot!
On Sep 24, 2015, 08:51, at 08:51, Yann Barraud notifications@github.com wrote:
Hi,
What version are you running on ?
I think is fixed in most recent versions. I'll check today if possible...
Cheers, Yann
Le mer. 23 sept. 2015 17:12, iDmple notifications@github.com a écrit :
Hi Yann,
I run into a problem with compareProb. I think that v1 is null at this point:
for (String v1 : vs1) { if (v1.equals("")) { continue; }
My data has some values that are null, indeed.
Here is the stacktrace:
Query Failed [Failed to execute main query] at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:163) at
org.elasticsearch.search.SearchService.loadOrExecuteQueryPhase(SearchService.java:301) at
org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:312) at
org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:231) at
org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:228) at
org.elasticsearch.search.action.SearchServiceTransportAction$23.run(SearchServiceTransportAction.java:559) 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) Caused by: java.lang.NullPointerException at
org.yaba.entity.script.EntityResolutionScript.computeProb(EntityResolutionScript.java:271) at
org.yaba.entity.script.EntityResolutionScript.compare(EntityResolutionScript.java:262) at
org.yaba.entity.script.EntityResolutionScript.runAsDouble(EntityResolutionScript.java:500) at
org.elasticsearch.common.lucene.search.function.ScriptScoreFunction.score(ScriptScoreFunction.java:100) at
org.elasticsearch.common.lucene.search.function.FunctionScoreQuery$FunctionFactorScorer.innerScore(FunctionScoreQuery.java:170) at
org.elasticsearch.common.lucene.search.function.CustomBoostFactorScorer$AnyNextDoc.score(CustomBoostFactorScorer.java:133) at
org.elasticsearch.common.lucene.search.function.CustomBoostFactorScorer.score(CustomBoostFactorScorer.java:71) at
org.apache.lucene.search.FilteredQuery$LeapFrogScorer.score(FilteredQuery.java:308) at
org.apache.lucene.search.TopScoreDocCollector$OutOfOrderTopScoreDocCollector.collect(TopScoreDocCollector.java:140) at
org.apache.lucene.search.Weight$DefaultBulkScorer.scoreAll(Weight.java:193) at org.apache.lucene.search.Weight$DefaultBulkScorer.score(Weight.java:163) at org.apache.lucene.search.BulkScorer.score(BulkScorer.java:35) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:621) at
org.elasticsearch.search.internal.ContextIndexSearcher.search(ContextIndexSearcher.java:191) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:491) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:448) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:281) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:269) at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:157) ... 8 more
— Reply to this email directly or view it on GitHub
https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15.
Cordialement, Yann Barraud
Reply to this email directly or view it on GitHub: https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15#issuecomment-142830410
Means I screwed up somewhere.
Can you just send me a test sample ? I'll include that in tests to have it permanently fixed.
Thanks...
Le jeu. 24 sept. 2015 08:54, iDmple notifications@github.com a écrit :
Hi,
It's 1.7.2 which is the current elasticsearch version as well.
Thanks a lot!
On Sep 24, 2015, 08:51, at 08:51, Yann Barraud notifications@github.com wrote:
Hi,
What version are you running on ?
I think is fixed in most recent versions. I'll check today if possible...
Cheers, Yann
Le mer. 23 sept. 2015 17:12, iDmple notifications@github.com a écrit :
Hi Yann,
I run into a problem with compareProb. I think that v1 is null at this point:
for (String v1 : vs1) { if (v1.equals("")) { continue; }
My data has some values that are null, indeed.
Here is the stacktrace:
Query Failed [Failed to execute main query] at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:163) at
org.elasticsearch.search.SearchService.loadOrExecuteQueryPhase(SearchService.java:301)
at
org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:312)
at
org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:231)
at
org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:228)
at
org.elasticsearch.search.action.SearchServiceTransportAction$23.run(SearchServiceTransportAction.java:559)
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) Caused by: java.lang.NullPointerException at
org.yaba.entity.script.EntityResolutionScript.computeProb(EntityResolutionScript.java:271)
at
org.yaba.entity.script.EntityResolutionScript.compare(EntityResolutionScript.java:262)
at
org.yaba.entity.script.EntityResolutionScript.runAsDouble(EntityResolutionScript.java:500)
at
org.elasticsearch.common.lucene.search.function.ScriptScoreFunction.score(ScriptScoreFunction.java:100)
at
org.elasticsearch.common.lucene.search.function.FunctionScoreQuery$FunctionFactorScorer.innerScore(FunctionScoreQuery.java:170)
at
org.elasticsearch.common.lucene.search.function.CustomBoostFactorScorer$AnyNextDoc.score(CustomBoostFactorScorer.java:133)
at
org.elasticsearch.common.lucene.search.function.CustomBoostFactorScorer.score(CustomBoostFactorScorer.java:71)
at
org.apache.lucene.search.FilteredQuery$LeapFrogScorer.score(FilteredQuery.java:308)
at
org.apache.lucene.search.TopScoreDocCollector$OutOfOrderTopScoreDocCollector.collect(TopScoreDocCollector.java:140)
at
org.apache.lucene.search.Weight$DefaultBulkScorer.scoreAll(Weight.java:193)
at org.apache.lucene.search.Weight$DefaultBulkScorer.score(Weight.java:163) at org.apache.lucene.search.BulkScorer.score(BulkScorer.java:35) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:621) at
org.elasticsearch.search.internal.ContextIndexSearcher.search(ContextIndexSearcher.java:191)
at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:491) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:448) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:281) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:269) at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:157) ... 8 more
— Reply to this email directly or view it on GitHub
https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15.
Cordialement, Yann Barraud
Reply to this email directly or view it on GitHub:
https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15#issuecomment-142830410
— Reply to this email directly or view it on GitHub https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15#issuecomment-142831999 .
Cordialement, Yann Barraud
The problem is that I have no idea which data makes it crash. I will try to create a test blindly and hopefully I will succeed.
On Sep 24, 2015, 08:58, at 08:58, Yann Barraud notifications@github.com wrote:
Means I screwed up somewhere.
Can you just send me a test sample ? I'll include that in tests to have it permanently fixed.
Thanks...
Le jeu. 24 sept. 2015 08:54, iDmple notifications@github.com a écrit :
Hi,
It's 1.7.2 which is the current elasticsearch version as well.
Thanks a lot!
On Sep 24, 2015, 08:51, at 08:51, Yann Barraud notifications@github.com wrote:
Hi,
What version are you running on ?
I think is fixed in most recent versions. I'll check today if possible...
Cheers, Yann
Le mer. 23 sept. 2015 17:12, iDmple notifications@github.com a écrit :
Hi Yann,
I run into a problem with compareProb. I think that v1 is null at this point:
for (String v1 : vs1) { if (v1.equals("")) { continue; }
My data has some values that are null, indeed.
Here is the stacktrace:
Query Failed [Failed to execute main query] at
org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:163)
at
org.elasticsearch.search.SearchService.loadOrExecuteQueryPhase(SearchService.java:301)
at
org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:312)
at
org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:231)
at
org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:228)
at
org.elasticsearch.search.action.SearchServiceTransportAction$23.run(SearchServiceTransportAction.java:559)
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) Caused by: java.lang.NullPointerException at
org.yaba.entity.script.EntityResolutionScript.computeProb(EntityResolutionScript.java:271)
at
org.yaba.entity.script.EntityResolutionScript.compare(EntityResolutionScript.java:262)
at
org.yaba.entity.script.EntityResolutionScript.runAsDouble(EntityResolutionScript.java:500)
at
org.elasticsearch.common.lucene.search.function.ScriptScoreFunction.score(ScriptScoreFunction.java:100)
at
org.elasticsearch.common.lucene.search.function.FunctionScoreQuery$FunctionFactorScorer.innerScore(FunctionScoreQuery.java:170)
at
org.elasticsearch.common.lucene.search.function.CustomBoostFactorScorer$AnyNextDoc.score(CustomBoostFactorScorer.java:133)
at
org.elasticsearch.common.lucene.search.function.CustomBoostFactorScorer.score(CustomBoostFactorScorer.java:71)
at
org.apache.lucene.search.FilteredQuery$LeapFrogScorer.score(FilteredQuery.java:308)
at
org.apache.lucene.search.TopScoreDocCollector$OutOfOrderTopScoreDocCollector.collect(TopScoreDocCollector.java:140)
at
org.apache.lucene.search.Weight$DefaultBulkScorer.scoreAll(Weight.java:193)
at
org.apache.lucene.search.Weight$DefaultBulkScorer.score(Weight.java:163)
at org.apache.lucene.search.BulkScorer.score(BulkScorer.java:35) at
org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:621)
at
org.elasticsearch.search.internal.ContextIndexSearcher.search(ContextIndexSearcher.java:191)
at
org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:491)
at
org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:448)
at
org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:281)
at
org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:269)
at
org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:157)
... 8 more
— Reply to this email directly or view it on GitHub
https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15.
Cordialement, Yann Barraud
Reply to this email directly or view it on GitHub:
https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15#issuecomment-142830410
— Reply to this email directly or view it on GitHub
https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15#issuecomment-142831999 .
Cordialement, Yann Barraud
Reply to this email directly or view it on GitHub: https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15#issuecomment-142833282
OK, this I found a test case.
Before that I also would like to point out that when a value is null in the request, which can perfectly happen in my case, for example:
"comparator" : { "name" : "no.priv.garshol.duke.comparators.Levenshtein" }, "high" : 0.55, "field" : "title", "cleaners" : [ { "name" : "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low" : 0.3, "value" : null }
Then "no.priv.garshol.duke.cleaners.TrimCleaner" (and also LowerCaseNormalizeCleaner) fail with
Caused by: java.lang.NullPointerException
at no.priv.garshol.duke.cleaners.TrimCleaner.clean(TrimCleaner.java:13)
at org.yaba.entity.script.EntityResolutionScript.readFields(EntityResolutionScript.java:427)
at org.yaba.entity.script.EntityResolutionScript.configureWithFieldsOnly(EntityResolutionScript.java:475)
at org.yaba.entity.script.EntityResolutionScript.
as there is no check for null here (probably similar in the other cleaner): value = value.trim(); at line 13.
Now the test for compare prob:
curl -XPUT 'http://localhost:9200/blog/post/1' -d ' { "user": "jkl", "postDate": null, "body": "", "title": "123" }'
curl -XPUT 'http://localhost:9200/blog/post/2' -d ' { "user": null, "postDate": null, "body": null, "title": null }'
and the request: GET /blog/post/_search { "size" : 4, "query" : { "function_score" : { "query" : { "match_all" : { } }, "functions" : [ { "script_score" : { "script" : "entity-resolution", "lang" : "native", "params" : { "entity" : { "fields" : [ { "comparator" : { "name" : "no.priv.garshol.duke.comparators.Levenshtein" }, "high" : 0.55, "field" : "title", "cleaners" : [ { "name" : "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low" : 0.3, "value" : "" }, { "comparator" : { "name" : "no.priv.garshol.duke.comparators.Levenshtein" }, "high" : 0.55, "field" : "body", "cleaners" : [ { "name" : "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low" : 0.3, "value" : "" }, { "comparator" : { "name" : "no.priv.garshol.duke.comparators.ExactComparator" }, "high" : 0.5, "field" : "postDate", "cleaners" : [ { "name" : "no.priv.garshol.duke.cleaners.DigitsOnlyCleaner" } ], "low" : 0.1, "value" : "8200" } ] } } } } ], "score_mode" : "max", "boost_mode" : "replace" } } }
The answer: { "took": 2, "timed_out": false, "shards": { "total": 5, "successful": 4, "failed": 1, "failures": [ { "index": "blog", "shard": 2, "status": 500, "reason": "QueryPhaseExecutionException[[blog][2]: query[filtered(function score (ConstantScore(:_),function=script[entity-resolution], params [{entity={fields=[{comparator={name=no.priv.garshol.duke.comparators.Levenshtein}, high=0.55, field=title, cleaners=[{name=no.priv.garshol.duke.cleaners.TrimCleaner}], low=0.3, value=}, {comparator={name=no.priv.garshol.duke.comparators.Levenshtein}, high=0.55, field=body, cleaners=[{name=no.priv.garshol.duke.cleaners.TrimCleaner}], low=0.3, value=}, {comparator={name=no.priv.garshol.duke.comparators.ExactComparator}, high=0.5, field=postDate, cleaners=[{name=no.priv.garshol.duke.cleaners.DigitsOnlyCleaner}], low=0.1, value=8200}]}}]))->cache(_type:post)],from[0],size[4]: Query Failed [Failed to execute main query]]; nested: NullPointerException; " } ] }, "hits": { "total": 5, "max_score": 0.5, "hits": [ { "_index": "blog", "_type": "post", "id": "AU-wstvaISvApL-JI3I", "_score": 0.5, "_source": { "size": 4, "query": { "function_score": { "query": { "match_all": {} }, "functions": [ { "script_score": { "script": "entity-resolution", "lang": "native", "params": { "entity": { "fields": [ { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "title", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "a" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "body", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.ExactComparator" }, "high": 0.5, "field": "postDate", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.DigitsOnlyCleaner" } ], "low": 0.1, "value": "8200" } ] } } } } ], "score_mode": "max", "boost_mode": "replace" } } } }, { "_index": "blog", "_type": "post", "id": "AU-wxPGaISvApL-JI3O", "_score": 0.5, "_source": { "size": 4, "query": { "function_score": { "query": { "match_all": {} }, "functions": [ { "script_score": { "script": "entity-resolution", "lang": "native", "params": { "entity": { "fields": [ { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "title", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "a" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "body", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.ExactComparator" }, "high": 0.5, "field": "postDate", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.DigitsOnlyCleaner" } ], "low": 0.1, "value": "8200" } ] } } } } ], "score_mode": "max", "boost_mode": "replace" } } } }, { "_index": "blog", "_type": "post", "id": "AU-xEXQaISvApL-JI3Q", "_score": 0.5, "_source": { "size": 4, "query": { "function_score": { "query": { "match_all": {} }, "functions": [ { "script_score": { "script": "entity-resolution", "lang": "native", "params": { "entity": { "fields": [ { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "title", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "a" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "body", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.ExactComparator" }, "high": 0.5, "field": "postDate", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.DigitsOnlyCleaner" } ], "low": 0.1, "value": "8200" } ] } } } } ], "score_mode": "max", "boost_mode": "replace" } } } }, { "_index": "blog", "_type": "post", "id": "AU-wxHaaISvApL-JI3N", "_score": 0.5, "_source": { "size": 4, "query": { "function_score": { "query": { "match_all": {} }, "functions": [ { "script_score": { "script": "entity-resolution", "lang": "native", "params": { "entity": { "fields": [ { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "title", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "a" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "body", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.ExactComparator" }, "high": 0.5, "field": "postDate", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.DigitsOnlyCleaner" } ], "low": 0.1, "value": "8200" } ] } } } } ], "score_mode": "max", "boost_mode": "replace" } } } } ] } }
Stackstrace: Caused by: java.lang.NullPointerException at org.yaba.entity.script.EntityResolutionScript.computeProb(EntityResolutionScript.java:271) at org.yaba.entity.script.EntityResolutionScript.compare(EntityResolutionScript.java:262) at org.yaba.entity.script.EntityResolutionScript.runAsDouble(EntityResolutionScript.java:500) at org.elasticsearch.common.lucene.search.function.ScriptScoreFunction.score(ScriptScoreFunction.java:100) at org.elasticsearch.common.lucene.search.function.FunctionScoreQuery$FunctionFactorScorer.innerScore(FunctionScoreQuery.java:170) at org.elasticsearch.common.lucene.search.function.CustomBoostFactorScorer$AnyNextDoc.score(CustomBoostFactorScorer.java:133)
Hopefully that helps!! Thanks a lot.
It does. I'll look at it tomorrow.
Le jeu. 24 sept. 2015 à 12:17, iDmple notifications@github.com a écrit :
OK, this I found a test case.
Before that I also would like to point out that when a value is null in the request, which can perfectly happen in my case, for example:
"comparator" : { "name" : "no.priv.garshol.duke.comparators.Levenshtein" }, "high" : 0.55, "field" : "title", "cleaners" : [ { "name" : "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low" : 0.3, "value" : null }
Then "no.priv.garshol.duke.cleaners.TrimCleaner" (and also LowerCaseNormalizeCleaner) fail with
Caused by: java.lang.NullPointerException at no.priv.garshol.duke.cleaners.TrimCleaner.clean(TrimCleaner.java:13) at org.yaba.entity.script.EntityResolutionScript.readFields(EntityResolutionScript.java:427) at org.yaba.entity.script.EntityResolutionScript.configureWithFieldsOnly(EntityResolutionScript.java:475) at org.yaba.entity.script.EntityResolutionScript.(EntityResolutionScript.java:97) at org.yaba.entity.script.EntityResolutionScript.(EntityResolutionScript.java:43) at org.yaba.entity.script.EntityResolutionScript$Factory.newScript(EntityResolutionScript.java:567) at org.elasticsearch.script.NativeScriptEngineService.search(NativeScriptEngineService.java:80) at org.elasticsearch.script.ScriptService.search(ScriptService.java:484) at org.elasticsearch.index.query.functionscore.script.ScriptScoreFunctionParser.parse(ScriptScoreFunctionParser.java:90)
as there is no check for null here (probably similar in the other cleaner): value = value.trim(); at line 13.
Now the test for compare prob:
curl -XPUT 'http://localhost:9200/blog/post/1' -d ' { "user": "jkl", "postDate": null, "body": "", "title": "123" }'
curl -XPUT 'http://localhost:9200/blog/post/2' -d ' { "user": null, "postDate": null, "body": null, "title": null }'
and the request: GET /blog/post/_search { "size" : 4, "query" : { "function_score" : { "query" : { "match_all" : { } }, "functions" : [ { "script_score" : { "script" : "entity-resolution", "lang" : "native", "params" : { "entity" : { "fields" : [ { "comparator" : { "name" : "no.priv.garshol.duke.comparators.Levenshtein" }, "high" : 0.55, "field" : "title", "cleaners" : [ { "name" : "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low" : 0.3, "value" : "" }, { "comparator" : { "name" : "no.priv.garshol.duke.comparators.Levenshtein" }, "high" : 0.55, "field" : "body", "cleaners" : [ { "name" : "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low" : 0.3, "value" : "" }, { "comparator" : { "name" : "no.priv.garshol.duke.comparators.ExactComparator" }, "high" : 0.5, "field" : "postDate", "cleaners" : [ { "name" : "no.priv.garshol.duke.cleaners.DigitsOnlyCleaner" } ], "low" : 0.1, "value" : "8200" } ] } } } } ], "score_mode" : "max", "boost_mode" : "replace" } } }
The answer: { "took": 2, "timed_out": false, "
_shards": { "total": 5, "successful": 4, "failed": 1, "failures": [ { "index": "blog", "shard": 2, "status": 500, "reason": "QueryPhaseExecutionException[[blog][2]: query[filtered(function score (ConstantScore(:),function=script[entity-resolution], params [{entity={fields=[{comparator={name=no.priv.garshol.duke.comparators.Levenshtein}, high=0.55, field=title, cleaners=[{name=no.priv.garshol.duke.cleaners.TrimCleaner}], low=0.3, value=}, {comparator={name=no.priv.garshol.duke.comparators.Levenshtein}, high=0.55, field=body, cleaners=[{name=no.priv.garshol.duke.cleaners.TrimCleaner}], low=0.3, value=}, {comparator={name=no.priv.garshol.duke.comparators.ExactComparator}, high=0.5, field=postDate, cleaners=[{name=no.priv.garshol.duke.cleaners.DigitsOnlyCleaner}], low=0.1, value=8200}]}}]))->cache(_type:post)],from[0],size[4]: Query Failed [Failed to execute main query]]; nested: NullPointerException; " } ] }, "hits": { "total": 5, "max_score": 0.5, "hits": [ { "_index": "blog", "_type": "post", "id": "AU-wstvaISvApL-JI3I", "
_score": 0.5, "_source": { "size": 4, "query": { "function_score": { "query": { "match_all": {} }, "functions": [ { "script_score": { "script": "entity-resolution", "lang": "native", "params": { "entity": { "fields": [ { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "title", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "a" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "body", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.ExactComparator" }, "high": 0.5, "field": "postDate", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.DigitsOnlyCleaner" } ], "low": 0.1, "value": "8200" } ] } } } } ], "score_mode": "max", "boost_mode": "replace" } } } }, { "_index": "blog", "_type": "post", "id": "AU-wxPGaISvApL-JI3O", "
_score": 0.5, "_source": { "size": 4, "query": { "function_score": { "query": { "match_all": {} }, "functions": [ { "script_score": { "script": "entity-resolution", "lang": "native", "params": { "entity": { "fields": [ { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "title", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "a" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "body", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.ExactComparator" }, "high": 0.5, "field": "postDate", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.DigitsOnlyCleaner" } ], "low": 0.1, "value": "8200" } ] } } } } ], "score_mode": "max", "boost_mode": "replace" } } } }, { "_index": "blog", "_type": "post", "id": "AU-xEXQaISvApL-JI3Q", "
_score": 0.5, "_source": { "size": 4, "query": { "function_score": { "query": { "match_all": {} }, "functions": [ { "script_score": { "script": "entity-resolution", "lang": "native", "params": { "entity": { "fields": [ { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "title", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "a" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "body", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.ExactComparator" }, "high": 0.5, "field": "postDate", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.DigitsOnlyCleaner" } ], "low": 0.1, "value": "8200" } ] } } } } ], "score_mode": "max", "boost_mode": "replace" } } } }, { "_index": "blog", "_type": "post", "id": "AU-wxHaaISvApL-JI3N", "_score": 0.5, "_source": { "size": 4, "query": { "function_score": { "query": { "match_all": {} }, "functions": [ { "script_score": { "script": "entity-resolution", "lang": "native", "params": { "entity": { "fields": [ { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "title", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "a" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "body", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.ExactComparator" }, "high": 0.5, "field": "postDate", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.DigitsOnlyCleaner" } ], "low": 0.1, "value": "8200" } ] } } } } ], "score_mode": "max", "boost_mode": "replace" } } } } ] } }
Stackstrace:
Caused by: java.lang.NullPointerException at org.yaba.entity.script.EntityResolutionScript.computeProb(EntityResolutionScript.java:271) at org.yaba.entity.script.EntityResolutionScript.compare(EntityResolutionScript.java:262) at org.yaba.entity.script.EntityResolutionScript.runAsDouble(EntityResolutionScript.java:500) at org.elasticsearch.common.lucene.search.function.ScriptScoreFunction.score(ScriptScoreFunction.java:100) at org.elasticsearch.common.lucene.search.function.FunctionScoreQuery$FunctionFactorScorer.innerScore(FunctionScoreQuery.java:170) at org.elasticsearch.common.lucene.search.function.CustomBoostFactorScorer$AnyNextDoc.score(CustomBoostFactorScorer.java:133)
Hopefully that helps!! Thanks a lot.
— Reply to this email directly or view it on GitHub https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15#issuecomment-142882349 .
Cordialement, Yann Barraud
Thanks a lot!
On Sep 24, 2015, 13:53, at 13:53, Yann Barraud notifications@github.com wrote:
It does. I'll look at it tomorrow.
Le jeu. 24 sept. 2015 à 12:17, iDmple notifications@github.com a écrit :
OK, this I found a test case.
Before that I also would like to point out that when a value is null in the request, which can perfectly happen in my case, for example:
"comparator" : { "name" : "no.priv.garshol.duke.comparators.Levenshtein" }, "high" : 0.55, "field" : "title", "cleaners" : [ { "name" : "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low" : 0.3, "value" : null }
Then "no.priv.garshol.duke.cleaners.TrimCleaner" (and also LowerCaseNormalizeCleaner) fail with
Caused by: java.lang.NullPointerException at no.priv.garshol.duke.cleaners.TrimCleaner.clean(TrimCleaner.java:13) at
org.yaba.entity.script.EntityResolutionScript.readFields(EntityResolutionScript.java:427) at
org.yaba.entity.script.EntityResolutionScript.configureWithFieldsOnly(EntityResolutionScript.java:475) at
org.yaba.entity.script.EntityResolutionScript.(EntityResolutionScript.java:97) at
org.yaba.entity.script.EntityResolutionScript.(EntityResolutionScript.java:43) at
org.yaba.entity.script.EntityResolutionScript$Factory.newScript(EntityResolutionScript.java:567) at
org.elasticsearch.script.NativeScriptEngineService.search(NativeScriptEngineService.java:80) at org.elasticsearch.script.ScriptService.search(ScriptService.java:484) at
org.elasticsearch.index.query.functionscore.script.ScriptScoreFunctionParser.parse(ScriptScoreFunctionParser.java:90)
as there is no check for null here (probably similar in the other cleaner): value = value.trim(); at line 13.
Now the test for compare prob:
curl -XPUT 'http://localhost:9200/blog/post/1' -d ' { "user": "jkl", "postDate": null, "body": "", "title": "123" }'
curl -XPUT 'http://localhost:9200/blog/post/2' -d ' { "user": null, "postDate": null, "body": null, "title": null }'
and the request: GET /blog/post/_search { "size" : 4, "query" : { "function_score" : { "query" : { "match_all" : { } }, "functions" : [ { "script_score" : { "script" : "entity-resolution", "lang" : "native", "params" : { "entity" : { "fields" : [ { "comparator" : { "name" : "no.priv.garshol.duke.comparators.Levenshtein" }, "high" : 0.55, "field" : "title", "cleaners" : [ { "name" : "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low" : 0.3, "value" : "" }, { "comparator" : { "name" : "no.priv.garshol.duke.comparators.Levenshtein" }, "high" : 0.55, "field" : "body", "cleaners" : [ { "name" : "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low" : 0.3, "value" : "" }, { "comparator" : { "name" : "no.priv.garshol.duke.comparators.ExactComparator" }, "high" : 0.5, "field" : "postDate", "cleaners" : [ { "name" : "no.priv.garshol.duke.cleaners.DigitsOnlyCleaner" } ], "low" : 0.1, "value" : "8200" } ] } } } } ], "score_mode" : "max", "boost_mode" : "replace" } } }
The answer: { "took": 2, "timed_out": false, "
*shards": { "total": 5, "successful": 4, "failed": 1, "failures": [ { "index": "blog", "shard": 2, "status": 500, "reason": "QueryPhaseExecutionException[[blog][2]: query[filtered(function score (ConstantScore(:),function=script[entity-resolution], params
[{entity={fields=[{comparator={name=no.priv.garshol.duke.comparators.Levenshtein}, high=0.55, field=title, cleaners=[{name=no.priv.garshol.duke.cleaners.TrimCleaner}], low=0.3, value=}, {comparator={name=no.priv.garshol.duke.comparators.Levenshtein}, high=0.55, field=body, cleaners=[{name=no.priv.garshol.duke.cleaners.TrimCleaner}], low=0.3, value=}, {comparator={name=no.priv.garshol.duke.comparators.ExactComparator}, high=0.5, field=postDate, cleaners=[{name=no.priv.garshol.duke.cleaners.DigitsOnlyCleaner}], low=0.1, value=8200}]}}]))->cache(_type:post)],from[0],size[4]: Query Failed [Failed to execute main query]]; nested: NullPointerException; " } ] }, "hits": { "total": 5, "max_score": 0.5, "hits": [ { "_index": "blog", "_type": "post", "_id": "AU*-wstvaISvApL-JI3I", "
_score": 0.5, "_source": { "size": 4, "query": { "function_score": { "query": { "match_all": {} }, "functions": [ { "script_score": { "script": "entity-resolution", "lang": "native", "params": { "entity": { "fields": [ { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "title", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "a" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "body", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.ExactComparator" }, "high": 0.5, "field": "postDate", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.DigitsOnlyCleaner" } ], "low": 0.1, "value": "8200" } ] } } } } ], "score_mode": "max", "boost_mode": "replace" } } } }, { "_index": "blog", "_type": "post", "id": "AU-wxPGaISvApL-JI3O", "
_score": 0.5, "_source": { "size": 4, "query": { "function_score": { "query": { "match_all": {} }, "functions": [ { "script_score": { "script": "entity-resolution", "lang": "native", "params": { "entity": { "fields": [ { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "title", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "a" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "body", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.ExactComparator" }, "high": 0.5, "field": "postDate", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.DigitsOnlyCleaner" } ], "low": 0.1, "value": "8200" } ] } } } } ], "score_mode": "max", "boost_mode": "replace" } } } }, { "_index": "blog", "_type": "post", "id": "AU-xEXQaISvApL-JI3Q", "
_score": 0.5, "_source": { "size": 4, "query": { "function_score": { "query": { "match_all": {} }, "functions": [ { "script_score": { "script": "entity-resolution", "lang": "native", "params": { "entity": { "fields": [ { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "title", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "a" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "body", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.ExactComparator" }, "high": 0.5, "field": "postDate", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.DigitsOnlyCleaner" } ], "low": 0.1, "value": "8200" } ] } } } } ], "score_mode": "max", "boost_mode": "replace" } } } }, { "_index": "blog", "_type": "post", "id": "AU-wxHaaISvApL-JI3N", "_score": 0.5, "_source": { "size": 4, "query": { "function_score": { "query": { "match_all": {} }, "functions": [ { "script_score": { "script": "entity-resolution", "lang": "native", "params": { "entity": { "fields": [ { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "title", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "a" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.Levenshtein" }, "high": 0.55, "field": "body", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.TrimCleaner" } ], "low": 0.3, "value": "" }, { "comparator": { "name": "no.priv.garshol.duke.comparators.ExactComparator" }, "high": 0.5, "field": "postDate", "cleaners": [ { "name": "no.priv.garshol.duke.cleaners.DigitsOnlyCleaner" } ], "low": 0.1, "value": "8200" } ] } } } } ], "score_mode": "max", "boost_mode": "replace" } } } } ] } }
Stackstrace:
Caused by: java.lang.NullPointerException at
org.yaba.entity.script.EntityResolutionScript.computeProb(EntityResolutionScript.java:271) at
org.yaba.entity.script.EntityResolutionScript.compare(EntityResolutionScript.java:262) at
org.yaba.entity.script.EntityResolutionScript.runAsDouble(EntityResolutionScript.java:500) at
org.elasticsearch.common.lucene.search.function.ScriptScoreFunction.score(ScriptScoreFunction.java:100) at
org.elasticsearch.common.lucene.search.function.FunctionScoreQuery$FunctionFactorScorer.innerScore(FunctionScoreQuery.java:170) at
org.elasticsearch.common.lucene.search.function.CustomBoostFactorScorer$AnyNextDoc.score(CustomBoostFactorScorer.java:133)
Hopefully that helps!! Thanks a lot.
— Reply to this email directly or view it on GitHub
https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15#issuecomment-142882349 .
Cordialement, Yann Barraud
Reply to this email directly or view it on GitHub: https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15#issuecomment-142907434
Hi Yann,
did you have a chance to take a look at this?
Best regards
Hi,
On going. I'm a bit short of time these last days...
Le lun. 28 sept. 2015 09:18, iDmple notifications@github.com a écrit :
Hi Yann,
did you have a chance to take a look at this?
Best regards
— Reply to this email directly or view it on GitHub https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15#issuecomment-143658375 .
Cordialement, Yann Barraud
Hi,
I actually fixed the bugs. I'm going to do a pull request after I have more time to test, maybe at the end of this week.
Thanks!
On Sep 30, 2015, 09:12, at 09:12, Yann Barraud notifications@github.com wrote:
Hi,
On going. I'm a bit short of time these last days...
Le lun. 28 sept. 2015 09:18, iDmple notifications@github.com a écrit :
Hi Yann,
did you have a chance to take a look at this?
Best regards
— Reply to this email directly or view it on GitHub
https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15#issuecomment-143658375 .
Cordialement, Yann Barraud
Reply to this email directly or view it on GitHub: https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15#issuecomment-144310802
Hi,
did you have time to make the PR ?
Cheers, Yann
Hi Yann,
Since then I found some other bugs even. I'm still finalizing the project and it should be ready in the next few weeks.
After that I'll do the PR. I just want to make sure I don't find another problem.
Cheers
On Dec 5, 2015, 10:29, at 10:29, Yann Barraud notifications@github.com wrote:
Hi,
did you have time to make the PR ?
Cheers, Yann
Reply to this email directly or view it on GitHub: https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15#issuecomment-162166461
Great ! Thanks a lot.
Le sam. 5 déc. 2015 10:42, iDmple notifications@github.com a écrit :
Hi Yann,
Since then I found some other bugs even. I'm still finalizing the project and it should be ready in the next few weeks.
After that I'll do the PR. I just want to make sure I don't find another problem.
Cheers
On Dec 5, 2015, 10:29, at 10:29, Yann Barraud notifications@github.com wrote:
Hi,
did you have time to make the PR ?
Cheers, Yann
Reply to this email directly or view it on GitHub:
https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15#issuecomment-162166461
— Reply to this email directly or view it on GitHub https://github.com/YannBrrd/elasticsearch-entity-resolution/issues/15#issuecomment-162167667 .
Cordialement, Yann Barraud
Hi Yann,
I run into a problem with compareProb. I think that v1 is null at this point:
My data has some values that are null, indeed.
Here is the stacktrace:
Query Failed [Failed to execute main query] at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:163) at org.elasticsearch.search.SearchService.loadOrExecuteQueryPhase(SearchService.java:301) at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:312) at org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:231) at org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:228) at org.elasticsearch.search.action.SearchServiceTransportAction$23.run(SearchServiceTransportAction.java:559) 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) Caused by: java.lang.NullPointerException at org.yaba.entity.script.EntityResolutionScript.computeProb(EntityResolutionScript.java:271) at org.yaba.entity.script.EntityResolutionScript.compare(EntityResolutionScript.java:262) at org.yaba.entity.script.EntityResolutionScript.runAsDouble(EntityResolutionScript.java:500) at org.elasticsearch.common.lucene.search.function.ScriptScoreFunction.score(ScriptScoreFunction.java:100) at org.elasticsearch.common.lucene.search.function.FunctionScoreQuery$FunctionFactorScorer.innerScore(FunctionScoreQuery.java:170) at org.elasticsearch.common.lucene.search.function.CustomBoostFactorScorer$AnyNextDoc.score(CustomBoostFactorScorer.java:133) at org.elasticsearch.common.lucene.search.function.CustomBoostFactorScorer.score(CustomBoostFactorScorer.java:71) at org.apache.lucene.search.FilteredQuery$LeapFrogScorer.score(FilteredQuery.java:308) at org.apache.lucene.search.TopScoreDocCollector$OutOfOrderTopScoreDocCollector.collect(TopScoreDocCollector.java:140) at org.apache.lucene.search.Weight$DefaultBulkScorer.scoreAll(Weight.java:193) at org.apache.lucene.search.Weight$DefaultBulkScorer.score(Weight.java:163) at org.apache.lucene.search.BulkScorer.score(BulkScorer.java:35) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:621) at org.elasticsearch.search.internal.ContextIndexSearcher.search(ContextIndexSearcher.java:191) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:491) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:448) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:281) at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:269) at org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:157) ... 8 more