Solr избегает двойных кавычек / точное совпадение (Django via Scorched/Sunburnt)

Я запрашиваю экземпляр Solr 5.3 с Django через Scorched. Все это прекрасно работает, поскольку я не задаю запрос с точным соответствием. Другими словами,

q=something something else

возвращает точно такой же результат, как:

q="something something else"

Насколько я понимаю, виновником является фактический запрос, который Django бросает в Solr. Фактически, для второго случая это:

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

Итак, другими словами, символ "экранирован". Я прав? Как мне сказать Solr, что когда я запрашиваю что-то между двойными кавычками, я хочу точное совпадение?

На веб-странице администратора Solr все это работает хорошо, то есть, если я ищу "что-то еще", я получаю правильный результат.

Я не уверен, что это проблема Scorched/Sunburnt или нет. Это как-то связано с фильтрами / токенизаторами (например, solr.MappingCharFilterFactory)?

Спасибо

1 ответ

Решение

Я получил это от людей Scorched на Github:

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

Scorched не будет экранировать символы внутри DismaxString....

Надеюсь, это может помочь другим людям.

Другие вопросы по тегам