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

Christian Danninger commented on LUCENE-6660:
---------------------------------------------

CheckJoinIndex dosn't found an issue of my attached index as well as the 
original one.
Just try the Solr query: {!parent which='region_id: 33'}  duration:3 or use the 
code below.
region_id belongs to parent documents, duration to child documents only.

{code}
                Path path = Paths.get(args[0]);
                
                FSDirectory directory = MMapDirectory.open(path);
                NRTCachingDirectory nrtCachingDirectory = new 
NRTCachingDirectory(directory, 48.0, 48.0);
                DirectoryReader reader = 
DirectoryReader.open(nrtCachingDirectory);
                
                {
                        IndexSearcher indexSearcher = new IndexSearcher(reader);
                        BitDocIdSetCachingWrapperFilter parentFilter = new 
BitDocIdSetCachingWrapperFilter( new QueryWrapperFilter(new TermQuery(new 
Term("region_id", new BytesRef(new byte[]{0x60, 0x8, 0, 0, 0, 0x21})))));
                                
                        Query p = new ToParentBlockJoinQuery(new TermQuery(new 
Term("duration", new BytesRef(new byte[]{0x60, 0x8, 0, 0, 0, 0x3}))), 
                                        parentFilter,
                                        ScoreMode.None);
                        
                        TopDocs search = indexSearcher.search(p, 1000);
                        ScoreDoc scoreDoc = search.scoreDocs[0];
                }
{code}

Outcome:
{code}
Exception in thread "main" java.lang.IllegalStateException: child query must 
only match non-parent docs, but parent docID=2147483647 matched 
childScorer=class org.apache.lucene.search.TermScorer
        at 
org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.nextDoc(ToParentBlockJoinQuery.java:334)
        at 
org.apache.lucene.search.Weight$DefaultBulkScorer.scoreAll(Weight.java:204)
        at 
org.apache.lucene.search.Weight$DefaultBulkScorer.score(Weight.java:176)
        at org.apache.lucene.search.BulkScorer.score(BulkScorer.java:35)
        at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:771)
        at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:485)
        at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:694)
        at 
org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:410)
        at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:439)
        at test.ParentChild.main(ParentChild.java:60)
{code}

> Assertion fails for ToParentBlockJoinQuery$BlockJoinScorer.nextDoc
> ------------------------------------------------------------------
>
>                 Key: LUCENE-6660
>                 URL: https://issues.apache.org/jira/browse/LUCENE-6660
>             Project: Lucene - Core
>          Issue Type: Bug
>          Components: core/search
>    Affects Versions: 5.2.1
>         Environment: Running Solr 5.2.1 on Windows x64
> java version "1.7.0_51"
> Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
> Java HotSpot(TM) Client VM (build 24.51-b03, mixed mode, sharing)
>            Reporter: Christian Danninger
>         Attachments: index.zip
>
>
> After I enable assertion with "-ea:org.apache..." I got the stack trace 
> below. I checked that the parent filter only match parent documents and the 
> child filter only match child documents. Field "id" is unique.
> 16:55:06,269 ERROR [org.apache.solr.servlet.SolrDispatchFilter] 
> (http-127.0.0.1/127.0.0.1:8080-1) null:java.lang.RuntimeException: 
> java.lang.AssertionError
>       at org.apache.solr.servlet.HttpSolrCall.sendError(HttpSolrCall.java:593)
>       at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:465)
>       at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:227)
>       at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:196)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
>       at 
> org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
>       at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:559)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
>       at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
>       at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
>       at 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920)
>       at java.lang.Thread.run(Thread.java:744)
> Caused by: java.lang.AssertionError
>       at 
> org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.nextDoc(ToParentBlockJoinQuery.java:278)
>       at 
> org.apache.lucene.search.Weight$DefaultBulkScorer.scoreAll(Weight.java:204)
>       at 
> org.apache.lucene.search.Weight$DefaultBulkScorer.score(Weight.java:176)
>       at org.apache.lucene.search.BulkScorer.score(BulkScorer.java:35)
>       at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:771)
>       at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:485)
>       at 
> org.apache.solr.search.SolrIndexSearcher.buildAndRunCollectorChain(SolrIndexSearcher.java:202)
>       at 
> org.apache.solr.search.SolrIndexSearcher.getDocListNC(SolrIndexSearcher.java:1666)
>       at 
> org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1485)
>       at 
> org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:561)
>       at 
> org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:518)
>       at 
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:255)
>       at 
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
>       at org.apache.solr.core.SolrCore.execute(SolrCore.java:2064)
>       at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:654)
>       at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:450)
>       ... 16 more
> Without assertions enabled:
> 17:21:39,008 ERROR [org.apache.solr.servlet.SolrDispatchFilter] 
> (http-127.0.0.1/127.0.0.1:8080-1) null:java.lang.IllegalStateException: child 
> query must only match non-parent docs, but parent docID=2147483647 matched 
> childScorer=class org.apache.lucene.search.ConjunctionScorer
>       at 
> org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.nextDoc(ToParentBlockJoinQuery.java:334)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to