You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "Thomas Taroni (Jira)" <ji...@apache.org> on 2020/06/27 11:44:00 UTC

[jira] [Created] (SOLR-14601) Using [child] and [subquery] DocTransformer / FieldList

Thomas Taroni created SOLR-14601:
------------------------------------

             Summary: Using [child] and [subquery] DocTransformer / FieldList
                 Key: SOLR-14601
                 URL: https://issues.apache.org/jira/browse/SOLR-14601
             Project: Solr
          Issue Type: Bug
      Security Level: Public (Default Security Level. Issues are Public)
          Components: SearchComponents - other
    Affects Versions: 8.5.2, master (9.0)
         Environment: Docker Container 8.5.2 from Docker Hub
Already existing in 9.0.0
            Reporter: Thomas Taroni


If you are using in the fl parameter something like that and luceneMatchVersion is higher or equals then 8.0.0 :

fl=*,[child],customer:[subquery] or
fl=*,customer:[subquery],[child]

It ends Up in any case in the following error (BadRequest) inside the SubQueryAugmenterFactory:

{code:java}
// code placeholder

if (conflictMap.containsKey(field)) {
 throw new SolrException(ErrorCode.BAD_REQUEST,"[subquery] name "+field+" is uplicated");
} else {
 conflictMap.put(field, true);
}

{code}
It looks like that the following Snippet in ChildDocTransformerFactory(8.5.2 and 9.0.0) already have added that field to the context.
{code:java}
// code placeholder 8.5.2

String childReturnFields = params.get("fl");
SolrReturnFields childSolrReturnFields;
if(childReturnFields != null) {
  childSolrReturnFields = new SolrReturnFields(childReturnFields, req);
} else if(req.getSchema().getDefaultLuceneMatchVersion().major < 8) {
  // ensure backwards for versions prior to SOLR 8
  childSolrReturnFields = new SolrReturnFields();
} else {
  childSolrReturnFields = new SolrReturnFields(req);
}

{code}
{code:java}
// code placeholder master 9.0.0

String childReturnFields = params.get("fl");
SolrReturnFields childSolrReturnFields;
if (childReturnFields != null) {
  childSolrReturnFields = new SolrReturnFields(childReturnFields, req);
} else {
  childSolrReturnFields = new SolrReturnFields(req);
}

{code}
It looks like childReturnFields includes also the customer:[subquery], eventually is a good idea to remove fields from other AugmenterFactories like [shard] or [subquery]

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org