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

ASF GitHub Bot commented on SOLR-8858:
--------------------------------------

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

    https://github.com/apache/lucene-solr/pull/47#discussion_r69763447
  
    --- Diff: solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java 
---
    @@ -766,12 +766,16 @@ public Document doc(int i, Set<String> fields) throws 
IOException {
         }
     
         final DirectoryReader reader = getIndexReader();
    -    if (!enableLazyFieldLoading || fields == null) {
    -      d = reader.document(i);
    +    if (fields != null) {
    +      if (enableLazyFieldLoading) {
    +        final SetNonLazyFieldSelector visitor = new 
SetNonLazyFieldSelector(fields, reader, i);
    +        reader.document(i, visitor);
    +        d = visitor.doc;
    +      } else {
    +        d = reader.document(i, fields);
    --- End diff --
    
    This could lead to a bug when there is a document cache, since we'd cache a 
partial document without lazy loading.  Then imagine a subsequent 
doc(i,otherFields), is called and then a document is returned without those 
fields even if the doc on disk might actually has those fields.
    
    On line 770 if (enableLazyFieldLoading) could become: if 
(enableLazyFieldLoading || documentCache != null).  In this sense, 
"enableLazyFieldLoading" would have no effect unless there is no doc cache... 
I'm not sure what to think of that.


> SolrIndexSearcher#doc() Completely Ignores Field Filters Unless Lazy Field 
> Loading is Enabled
> ---------------------------------------------------------------------------------------------
>
>                 Key: SOLR-8858
>                 URL: https://issues.apache.org/jira/browse/SOLR-8858
>             Project: Solr
>          Issue Type: Bug
>    Affects Versions: 4.6, 4.10, 5.5
>            Reporter: Caleb Rackliffe
>              Labels: easyfix
>
> If {{enableLazyFieldLoading=false}}, a perfectly valid fields filter will be 
> ignored, and we'll create a {{DocumentStoredFieldVisitor}} without it.



--
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