Affects Version/s: 6.5
Fix Version/s: None
Component/s: query parsers
The edismax query parser parameter mm.autoRelax won't work in a particular configuration. I consider this as a bug and therefore open this ticket.
A minimalized brief about the core configuration:
We maintain a solr core with some localized fields with respective analyzers and different stopword lists, like the schema configuration you can see below.
The indexed data is processed by langID module and put into the appropriate localized field. The upper field is intended for display only. The lower two will be indexed.
The search request handler configuration is set up as followed.
For convenient search for a title the qf parameter is also defined on field name title. The field itself is not indexed (not searchable), but the query is delegated to the underlying localized fields.
As you can see the qf parameter is cascaded.
By this the mm.autoRelax parameter doesn't work as expected.
If true, the number of clauses required (minimum should match) will automatically be relaxed if a clause is removed (by e.g., stopwords filter) from some but not all qf fields.
Example query and debug:
Although one stopword is detected and removed from query the overall number of required clauses remains 3.
If the localized fields are defined directly in the qf parameter everything will be fine:
To avoid the problem by not cascading qf might be no big deal. But if many localized fields exist and should be searched by default the configuration overhead increases massively. We have 6 languages and 12 localized fields. This leads to 72 fields to be defined in qf.
If someone has any questions, feel free to comment. I will reply as soon as possible.