[ 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