[ https://issues.apache.org/jira/browse/SOLR-5725?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15449219#comment-15449219 ]
David Smiley commented on SOLR-5725: ------------------------------------ I've never heard of {{facet.zeros}}, so probably not a big concern. bq. I'm afraid users will try to combine it with fc,fcs,uif, that's why I prefer to switch it as method. I think it's okay to return an error when a particular facet.method's requirements aren't met, even though we don't normally do that. But I think it's bad to have facet.method otherwise have a visible effect on the response. We already overrule what the user specifies in facet.method when we have to. This can be no different... set a proposed {{facet.count=false}} and then facet.method is ignored because we're going to effectively do that exactly one way. > Efficient facets without counts for enum method > ----------------------------------------------- > > Key: SOLR-5725 > URL: https://issues.apache.org/jira/browse/SOLR-5725 > Project: Solr > Issue Type: Improvement > Components: search > Reporter: Alexey Kozhemiakin > Assignee: Mikhail Khludnev > Fix For: master (7.0), 6.3 > > Attachments: SOLR-5725-5x.patch, SOLR-5725-master.patch, > SOLR-5725.patch, SOLR-5725.patch, SOLR-5725.patch, SOLR-5725.patch > > > Shot version: > This improves performance for facet.method=enum when it's enough to know that > facet count>0, for example when you it's when you dynamically populate > filters on search form. New method checks if two bitsets intersect instead of > counting intersection size. > Long version: > We have a dataset containing hundreds of millions of records, we facet by > dozens of fields with many of facet-excludes and have relatively small number > of unique values in fields, around thousands. > Before executing search, users work with "advanced search" form, our goal is > to populate dozens of filters with values which are applicable with other > selected values, so basically this is a use case for facets with mincount=1, > but without need in actual counts. > Our performance tests showed that facet.method=enum works much better than > fc\fcs, probably due to a specific ratio of "docset"\"unique terms count". > For example average execution of query time with method fc=1500ms, fcs=2600ms > and with enum=280ms. Profiling indicated the majority time for enum was spent > on intersecting docsets. > Hers's a patch that introduces an extension to facet calculation for > method=enum. Basically it uses docSetA.intersects(docSetB) instead of > docSetA. intersectionSize (docSetB). > As a result we were able to reduce our average query time from 280ms to 60ms. -- 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