Hello,

I get NPE when I use IndexSearcher.explain(). Checked with Lucene 8.6.0
and 8.6.2.

The query: (lorem AND NOT "dolor lorem") OR ipsum
The text: dolor lorem ipsum

Stack trace:
> java.lang.NullPointerException
>       at java.util.Objects.requireNonNull(Objects.java:203)
>       at org.apache.lucene.search.LeafSimScorer.<init>(LeafSimScorer.java:38)
>       at 
> org.apache.lucene.search.spans.SpanWeight.explain(SpanWeight.java:160)
>       at org.apache.lucene.search.BooleanWeight.explain(BooleanWeight.java:87)
>       at org.apache.lucene.search.BooleanWeight.explain(BooleanWeight.java:87)
>       at 
> org.apache.lucene.search.IndexSearcher.explain(IndexSearcher.java:716)
>       at 
> org.apache.lucene.search.IndexSearcher.explain(IndexSearcher.java:693)

The sample code:

        val analyzer = new StandardAnalyzer();
        val query = new ComplexPhraseQueryParser("",
analyzer).parse(queryString);

        final MemoryIndex memoryIndex = new MemoryIndex(true);
        memoryIndex.addField("", text, analyzer);

        final IndexSearcher searcher = memoryIndex.createSearcher();
        final TopDocs topDocs = searcher.search(query, 1);

        final ScoreDoc match = topDocs.scoreDocs[0];

        searcher.explain(query, match.doc);



-- 
Michał Słomkowski

Reply via email to