Search code examples
djangosolrsunburnt

Solr escapes double quotes/exact match (Django via Scorched/Sunburnt)


I'm querying a Solr 5.3 instance with Django through Scorched. It all works great as far as I don't ask an exact-match query. In other words,

q=something something else

returns exactly the same result as:

q="something something else"

The culprit, as far as I can see, is the actual query which Django throws at Solr. In fact, for the second case this is:

q=\"something\+something\+else\"

So, in other words, the " character is escaped. Am I right? How do I tell Solr that when I query something between double quotes I want an exact match?

In the Solr admin webpage it all works well, i.e. if I search for "something something else" I get the correct result.

I'm not sure this is a Scorched/Sunburnt problem or not. Does it have something to do with filters/tokenizers (e.g. solr.MappingCharFilterFactory)?

Thanks


Solution

  • I have received this from Scorched's people on Github:

    from scorched.strings import DismaxString ... solr.query(q=DismaxString('"something something else"')

    Scorched will not escape any characters inside a DismaxString....

    Hopefully it can help other people.