[
https://issues.apache.org/jira/browse/SOLR-8858?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15362056#comment-15362056
]
ASF GitHub Bot commented on SOLR-8858:
--------------------------------------
Github user maedhroz commented on a diff in the pull request:
https://github.com/apache/lucene-solr/pull/47#discussion_r69510618
--- Diff: solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
---
@@ -766,16 +766,29 @@ public Document doc(int i, Set<String> fields) throws
IOException {
}
final DirectoryReader reader = getIndexReader();
- if (!enableLazyFieldLoading || fields == null) {
- d = reader.document(i);
+ boolean containsAllFields = true;
+
+ 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);
+ containsAllFields = false;
+ }
} else {
- final SetNonLazyFieldSelector visitor = new
SetNonLazyFieldSelector(fields, reader, i);
- reader.document(i, visitor);
- d = visitor.doc;
+ d = reader.document(i);
}
if (documentCache != null) {
- documentCache.put(i, d);
+ // Only cache the already retrieved document if it is complete...
+ if (containsAllFields) {
+ documentCache.put(i, d);
+ } else {
+ // ...and retrieve a complete document for caching otherwise.
+ documentCache.put(i, reader.document(i));
+ }
--- End diff --
@shalinmangar I've made a pass at restoring the previous caching behavior
(with some comments around the rationale). It feels like we might have a
complete solution at this point.
> 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]