[ https://issues.apache.org/jira/browse/SOLR-12878?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16670338#comment-16670338 ]
David Smiley commented on SOLR-12878: ------------------------------------- The fix looks correct to me. {{searcher.getSlowAtomicReader().getFieldInfos()}} should be called exactly once (by SolrIndexSearcher) and never again. To prevent this error from popping up again, I think it should be cached at {{SlowCompositeReaderWrapper}} and not in SolrIndexSearcher. Note it caches other things (albeit on-demand). SCRW is only used by Solr ever since it was ejected from Lucene. > FacetFieldProcessorByHashDV is reconstructing FieldInfos on every > instantiation > ------------------------------------------------------------------------------- > > Key: SOLR-12878 > URL: https://issues.apache.org/jira/browse/SOLR-12878 > Project: Solr > Issue Type: Bug > Security Level: Public(Default Security Level. Issues are Public) > Components: Facet Module > Affects Versions: 7.5 > Reporter: Tim Underwood > Assignee: Mikhail Khludnev > Priority: Major > Labels: performance > Fix For: 7.6, master (8.0) > > Time Spent: 10m > Remaining Estimate: 0h > > The FacetFieldProcessorByHashDV constructor is currently calling: > {noformat} > FieldInfo fieldInfo = > fcontext.searcher.getSlowAtomicReader().getFieldInfos().fieldInfo(sf.getName()); > {noformat} > Which is reconstructing FieldInfos each time. Simply switching it to: > {noformat} > FieldInfo fieldInfo = > fcontext.searcher.getFieldInfos().fieldInfo(sf.getName()); > {noformat} > > causes it to use the cached version of FieldInfos in the SolrIndexSearcher. > On my index the FacetFieldProcessorByHashDV is 2-3 times slower than the > legacy facets without this fix. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org