[
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: [email protected]
For additional commands, e-mail: [email protected]