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

David Smiley commented on SOLR-15407:
-------------------------------------

bq. it seems we get a document just containing "100" in the numerical field to 
be a match, even if it doesn't contain "terminator" anywhere else with mm=100%. 
 And I think that's incorrect.

+1

bq. sow=false implies the minimum should match is "per field"

I'm skeptical about that.  If I recall, {{sow=false}} was added mostly to get 
multi-term synonyms to work, finally, and it's what we'd recommend in general 
(and so does Doug in his blog).  But I don't want mm=100% to demand a matching 
doc must have all terms in at least one field.  No way; many fewer results 
would match many common queries where the query words are in different fields.  
I always want {{mm}} to be "per document".

> eDismax sow=false doesn't work with string field types
> ------------------------------------------------------
>
>                 Key: SOLR-15407
>                 URL: https://issues.apache.org/jira/browse/SOLR-15407
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: query parsers
>    Affects Versions: 8.8.2
>            Reporter: Alessandro Benedetti
>            Priority: Major
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> Currently, the sow=false should not tokenize the input user query text and 
> delegate to each field for query time text analysis.
> But what happens if one of the queries involved is not analyzed?
> For example, because it is a string field type?
> Terms are split and the query generated is broken:
> {code:java}
>     assertU(adoc("id", "75", "trait_ss", "multi term"));
> public void testSplitOnWhitespace_stringField_shouldBuildSingleClause() 
> throws Exception
>     {
>         assertJQ(req("qf", "trait_ss", "defType", "edismax", "q", "multi 
> term", "sow", "false"),
>             "/response/numFound==1", "/response/docs/[0]/id=='75'");
>         String parsedquery;
>         parsedquery = getParsedQuery(
>             req("qf", "trait_ss", "q", "multi term", "defType", "edismax", 
> "sow", "false", "debugQuery", "true"));
>         assertThat(parsedquery, anyOf(containsString("((trait_ss:multi 
> term))")));
>     }
> {code}
> This test would be currently broken.
> The current parsed query is wrongly:
> (trait_ss:multi trait_ss:term)



--
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

Reply via email to