You can OR cachable filter queries in the latest Solr. There is a special (filter) syntax for that.
Regards, Alex On 31 Aug. 2017 2:11 pm, "Josh Lincoln" <josh.linc...@gmail.com> wrote: As I understand it, using a different fq for each clause makes the resultant caches more likely to be used in future requests. For the query fq=first:bob AND last:smith a subsequent query for fq=first:tim AND last:smith won't be able to use the fq cache from the first query. However, if the first query was fq=first:bob fq=last:smith and subsequently fq=first:tim fq=last:smith then the second query will at least benefit from the last:smith cache Because fq clauses are always ANDed, this does not work for ORed clauses. I suppose if some conditions are frequently used together it may be better to put them in the same fq so there's only one cache. E.g. if an ecommerce site reqularly queried for featured:Y AND instock:Y On Thu, Aug 31, 2017 at 1:48 PM David Hastings <hastings.recurs...@gmail.com > wrote: > > > > 2) Because all your clauses are more like filters and are ANDed together, > > you'll likely get better performance by putting them _each_ in an fq > > E.g. > > fq=product_identifier_type:DOTCOM_OFFER > > fq=abstract_or_primary_product_id:[* TO *] > > > why is this the case? is it just better to have no logic operators in the > filter queries? > > > > On Thu, Aug 31, 2017 at 1:47 PM, Josh Lincoln <josh.linc...@gmail.com> > wrote: > > > Suresh, > > Two things I noticed. > > 1) If your intent is to only match records where there's something, > > anything, in abstract_or_primary_product_id, you should use fieldname:[* > > TO > > *] but that will exclude records where that field is empty/missing. If > you > > want to match records even if that field is empty/missing, then you > should > > remove that clause entirely > > 2) Because all your clauses are more like filters and are ANDed together, > > you'll likely get better performance by putting them _each_ in an fq > > E.g. > > fq=product_identifier_type:DOTCOM_OFFER > > fq=abstract_or_primary_product_id:[* TO *] > > fq=gtin:<numericValue> > > fq=product_class_type:BUNDLE > > fq=hasProduct:N > > > > > > On Thu, Aug 31, 2017 at 1:35 PM suresh pendap <sureshfors...@gmail.com> > > wrote: > > > > > Hello everybody, > > > > > > We are seeing that the below query is running very slow and taking > > almost 4 > > > seconds to finish > > > > > > > > > [<shard7_replica1>] webapp=/solr path=/select > > > > > > params={df=_text_&distrib=false&fl=id&shards.purpose=4& > > start=0&fsv=true&sort=modified_dtm+desc&shard.url=http:// > > > <host1>:8983/solr/flat_product_index_shard7_replica1/ > > %7Chttp://<host2>:8983/solr/flat_product_index_shard7_ > > replica2/%7Chttp://<host3>:8983/solr/flat_product_index_ > > > shard7_replica0/&rows=11&version=2&q=product_identifier_type:DOTCOM_OFFER+ > > AND+abstract_or_primary_product_id:*+AND+(gtin:< > > numericValue>)+AND+-product_class_type:BUNDLE+AND+-hasProduct:N&NOW= > > 1504196301534&isShard=true&timeAllowed=25000&wt=javabin} > > > hits=0 status=0 QTime=3663 > > > > > > > > > It seems like the abstract_or_primary_product_id:* clause is > > contributing > > > to the overall response time. It seems that the > > > abstract_or_primary_product_id:* . clause is not adding any value in > the > > > query criteria and can be safely removed. Is my understanding correct? > > > > > > I would like to know if the order of the clauses in the AND query would > > > affect the response time of the query? > > > > > > For e.g . f1: 3 AND f2:10 AND f3:* vs . f3:* AND f1:3 AND f2:10 > > > > > > Doesn't Lucene/Solr pick up the optimal query execution plan? > > > > > > Is there anyway to look at the query execution plan generated by > Lucene? > > > > > > Regards > > > Suresh > > > > > >