"mm":"2",
"q":"IBASEDESCRIPTION:(ankor sunnyvale tokyo^3 london labs)",
"defType":"dismax",
"fl":"score, IBASEDESCRIPTION",
"q.op":"AND",
"rows":"3",
"debug.explain.structured":"true",
"debugQuery":"on"
This is what I see in the response header.
mm=2 it means 2 optional clauses should match. q.op is AND - I assumed that conditions between the clauses are AND
I expect the following field not to match:
Level 3 Communications-london
akamai-level 3-london
But they are part of the results.
Could anyone help me to understand the behavior here?
I suspect it is because ^3 in the tokyo field. But that's what the boosting factor.
mm=2does not mean two optional clauses should match - it means that two clauses should match.q.opdoes not take effect whenmmis set.Why those specific entries are included is hard to say without seeing the analysis for the field and the actual value indexed (the debug query will include information about what terms are being hit for each field and how much it contributes to the score).
You should also use
qfhere instead of having the field name present when using the dismax handler.