lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Amrit Sarkar (JIRA)" <>
Subject [jira] [Created] (SOLR-12779) Force field/term centric mode for multi-term synonyms with splitOnWhitespace=false
Date Tue, 18 Sep 2018 06:09:00 GMT
Amrit Sarkar created SOLR-12779:

             Summary: Force field/term centric mode for multi-term synonyms with splitOnWhitespace=false
                 Key: SOLR-12779
             Project: Solr
          Issue Type: Improvement
      Security Level: Public (Default Security Level. Issues are Public)
    Affects Versions: master (8.0)
            Reporter: Amrit Sarkar

As Doug Turnbull pointed out on the solr-user mailing list: _,
(recommended reading, especially for his discussion of the limitations of the new sow=false
request parameter), sow=false changes the queries edismax produces over multiple fields when
any of the fields’ query-time analysis differs from the other fields’, e.g. if one field’s
analyzer removes stopwords when another field’s doesn’t. In this case, rather than a dismax-query-per-whitespace-separated-term
(edismax’s behavior when sow=true), a dismax query per field is produced. This can change
results in general, but quite significantly when combined with the mm (min-should-match) request
parameter: since min-should-match applies per field instead of per term, missing terms in
one field’s analysis won’t disqualify docs from matching. E.g. query “Terminator 100”
with request param “mm=100%” against both a title (text) field and a run_length (integer)
field will result in the following queries:
When sow=true:
+(DisjunctionMaxQuery((title:terminator)) DisjunctionMaxQuery((run_length:[100 TO 100] | title:100)))~2{code}
When sow=false:
+DisjunctionMaxQuery((run_length:[100 TO 100] | ((title:terminator title:100)~2))){code}
In the above scenario, when sow=true (and in versions of Solr before 6.5), “terminator”
must appear in documents in order to produce a match. But when sow=false, a document can match
if its run_length field is 100, even when the title does not contain “terminator”.

It is good to have an option to force term centric or query-centric matching at query parsing;
so that expected behavior can be achieved; discussed under

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message