Github user dsmiley commented on a diff in the pull request:

    https://github.com/apache/lucene-solr/pull/416#discussion_r206012956
  
    --- Diff: 
solr/core/src/test/org/apache/solr/response/transform/TestDeeplyNestedChildDocTransformer.java
 ---
    @@ -168,35 +172,57 @@ private static String id() {
         return "" + counter.incrementAndGet();
       }
     
    +  private static void cleanSolrDocumentFields(SolrDocument input) {
    +    for(Map.Entry<String, Object> field: input) {
    +      Object val = field.getValue();
    +      if(val instanceof Collection) {
    +        Object newVals = ((Collection) val).stream().map((item) -> 
(cleanIndexableField(item)))
    +            .collect(Collectors.toList());
    +        input.setField(field.getKey(), newVals);
    +        continue;
    +      } else {
    +        input.setField(field.getKey(), 
cleanIndexableField(field.getValue()));
    +      }
    +    }
    +  }
    +
    +  private static Object cleanIndexableField(Object field) {
    +    if(field instanceof IndexableField) {
    +      return ((IndexableField) field).stringValue();
    +    } else if(field instanceof SolrDocument) {
    +      cleanSolrDocumentFields((SolrDocument) field);
    +    }
    +    return field;
    +  }
    +
       private static String grandChildDocTemplate(int id) {
         int docNum = id / 8; // the index of docs sent to solr in the 
AddUpdateCommand. e.g. first doc is 0
    -    return 
"SolrDocument{id=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<id:" + id 
+ ">, type_s=[stored,indexed,tokenized,omitNorms,indexOptions=DOCS<type_s:" + 
types[docNum % types.length] + ">], 
name_s=[stored,indexed,tokenized,omitNorms,indexOptions=DOCS<name_s:" + 
names[docNum % names.length] + ">], " +
    -        
"_root_=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<_root_:" + id + 
">, " +
    -        
"toppings=[SolrDocument{id=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<id:"
 + (id + 3) + ">, 
type_s=[stored,indexed,tokenized,omitNorms,indexOptions=DOCS<type_s:Regular>], 
_nest_parent_=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<_nest_parent_:"
 + id + ">, " +
    -        
"_root_=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<_root_:" + id + 
">, " +
    -        
"ingredients=[SolrDocument{id=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<id:"
 + (id + 4) + ">, 
name_s=[stored,indexed,tokenized,omitNorms,indexOptions=DOCS<name_s:cocoa>], " +
    -        
"_nest_parent_=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<_nest_parent_:"
 + (id + 3) + ">, 
_root_=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<_root_:" + id + 
">}]}, " +
    -        
"SolrDocument{id=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<id:" + 
(id + 5) + ">, 
type_s=[stored,indexed,tokenized,omitNorms,indexOptions=DOCS<type_s:Chocolate>],
 
_nest_parent_=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<_nest_parent_:"
 + id + ">, " +
    -        
"_root_=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<_root_:" + id + 
">, " +
    -        
"ingredients=[SolrDocument{id=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<id:"
 + (id + 6) + ">, 
name_s=[stored,indexed,tokenized,omitNorms,indexOptions=DOCS<name_s:cocoa>], 
_nest_parent_=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<_nest_parent_:"
 + (id + 5)+ ">, " +
    -        
"_root_=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<_root_:" + id + 
">}, " +
    -        
"SolrDocument{id=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<id:" + 
(id + 7) + ">, 
name_s=[stored,indexed,tokenized,omitNorms,indexOptions=DOCS<name_s:cocoa>], 
_nest_parent_=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<_nest_parent_:"
 + (id + 5) + ">, " +
    -        
"_root_=stored,indexed,tokenized,omitNorms,indexOptions=DOCS<_root_:" + id + 
">}]}]}";
    +    return "SolrDocument{id="+ id + ", type_s=[" + types[docNum % 
types.length] + "], name_s=[" + names[docNum % names.length] + "], " +
    --- End diff --
    
    It's a shame to have all this embedded ID calculation business. During 
cleaning can they be removed (both "id" and nest parent and root) and we still 
have enough distinguishing characteristics of the docs to know which is which?  
Seems that way.  It adds a lot of noise.


---

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

Reply via email to