Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
5.5.2
-
None
-
None
Description
Without any filters, the MLT is performing normal. With any added filters, the performance degrades compared to 4.6.1 (2.5-3.0X in our case). The issue goes away with 6.0 upgrade. The hot method is Lucene's DisiPriorityQueue downHeap(), which takes 5X more calls in 5.5.2 compared to 6.0. I am guessing that some of the Solr filters refactoring fixed it for 6.0 release.
As a work-around, for now I just refactored the custom MLT handler to convert the filters into boolean clauses, which takes care of the issue.
Our configuration:
1. mlt.maxqt=100
2. There is an additional filter passed as a parameter
3. <field name="mlt1" type="text_general" indexed="true" stored="true" multiValued="true" omitNorms="false" termVectors="true"/>
4. text_general is a pretty standard text fieldType.
I have a code to populate a test dataset and run a query in order to reproduce this.