I have a few filter queries that use multiple cores join to filter
documents. After I inverted those joins they became slower. So, it looks
something like that:

I used to query "product" core with query that contains fq={!join to=tags
from=preferred_tags fromIndex=user}(country:US AND
Now I query "user" core with query that contains fq={!join
to=preferred_tags from=tags fromIndex=product}(product_category:0 AND

Both tags and preferred_tags might contain multiple values and "product"
core is more oftenly used(so could be that the cache is warmer for that
core). "user" index is smaller then "product". After a few queries Solr
seems to warm up and serves the query ~50x faster, but the initial queries
are extremely slow. I tried turning off caching for the filter and making
it's cost higher then 150, but it did not help much. I was thinking about
adding autowarmup queries, but first I want to check what makes the join so
slow, so what would be a right way to debug it to see which part of it is
the slowest one...

Also, if I will go with autowarmup since there are 2 cores involved I
wonder which warmup query should be used... "fq={!join to=preferred_tags
from=tags fromIndex=product}(product_category:0 AND ...)" on "user" core or
"fq=(product_category:0 AND ...)" on "product"...

Solr version is 4.3.0

Regards, Oleg

Reply via email to