[jira] [Commented] (SOLR-12779) Force field/term centric matching mode for multi-term synonyms with sow=false

2023-01-17 Thread Rudi Seitz (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-12779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17677902#comment-17677902
 ] 

Rudi Seitz commented on SOLR-12779:
---

Linking to SOLR-16594 which contains a proposal for addressing this issue.

> Force field/term centric matching mode for multi-term synonyms with sow=false
> -
>
> Key: SOLR-12779
> URL: https://issues.apache.org/jira/browse/SOLR-12779
> Project: Solr
>  Issue Type: Improvement
>Affects Versions: 8.0
>Reporter: Amrit Sarkar
>Priority: Major
>
> As Doug Turnbull pointed out on the solr-user mailing list: 
> [https://lists.apache.org/thread.html/27590a2d8598be515b24f47f7912e074d2010910242cfdeb1fcd655d%40%3Csolr-user.lucene.apache.org%3E]
>  (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:
> {code:java}
> +(DisjunctionMaxQuery((title:terminator)) 
> DisjunctionMaxQuery((run_length:[100 TO 100] | title:100)))~2{code}
> When sow=false:
> {code:java}
> +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 
> [http://lucene.472066.n3.nabble.com/Split-on-whitespace-parameter-doubt-td4404185.html].



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org



[jira] [Commented] (SOLR-12779) Force field/term centric matching mode for multi-term synonyms with sow=false

2021-05-20 Thread David Smiley (Jira)


[ 
https://issues.apache.org/jira/browse/SOLR-12779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17348599#comment-17348599
 ] 

David Smiley commented on SOLR-12779:
-

Also of interest:
 * Doug Turnbull's blog post: [Solr Multiterm Synonyms: avoiding sow=false 
surprises|https://opensourceconnections.com/blog/2018/02/20/edismax-and-multiterm-synonyms-oddities/?utm_source=dlvr.it&utm_medium=twitter]
 * And Alessandro's blog post: [Apache Solr sow Parameter (Split on Whitespace) 
and Multi-Field Full-Text 
Search|https://sease.io/2021/05/apache-solr-sow-parameter-split-on-whitespace-and-multi-field-full-text-search.html]

Any way, this Jira issue feels more like a "wish"; it doesn't have an obvious 
solution.

> Force field/term centric matching mode for multi-term synonyms with sow=false
> -
>
> Key: SOLR-12779
> URL: https://issues.apache.org/jira/browse/SOLR-12779
> Project: Solr
>  Issue Type: Improvement
>Affects Versions: 8.0
>Reporter: Amrit Sarkar
>Priority: Major
>
> As Doug Turnbull pointed out on the solr-user mailing list: 
> [https://lists.apache.org/thread.html/27590a2d8598be515b24f47f7912e074d2010910242cfdeb1fcd655d%40%3Csolr-user.lucene.apache.org%3E]
>  (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:
> {code:java}
> +(DisjunctionMaxQuery((title:terminator)) 
> DisjunctionMaxQuery((run_length:[100 TO 100] | title:100)))~2{code}
> When sow=false:
> {code:java}
> +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 
> [http://lucene.472066.n3.nabble.com/Split-on-whitespace-parameter-doubt-td4404185.html].



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org