dismax и edismax возвращают разные результаты
Я использую Solr для моего сайта. Документ имеет два поля: жанр и тема. Например, если я хочу найти роман о любви, то запрос solr будет иметь вид tyepDef=dismax&qf= жанр, тема &q= жанр: роман И тема: о любви. Однако это не дает никаких результатов. Однако, если я использую edismax, возвращаются все документы, тема которых начинается с "о". Это две разные крайности, ничего или все. Как я могу настроить свой запрос так, чтобы в точности возвращались документы, которые соответствуют жанру: роману и теме: о любви?
2 ответа
Полагаю, что жанр фиксирован, вам не следует обращаться к жанру.
Вы должны скорее фильтровать по жанровому полю.
например, fq=genre:novel, это будет намного быстрее, чем обычный поиск.
Тема представляет собой поле содержимого, и ее можно искать как обычный запрос. q=topic:about
или поскольку вы уже используете dismax/edismax, вы можете использовать q=about&qf=topic
dismax
не поддерживает полевые запросы как это: genre:novel
, Вместо этого вы настраиваете его для поиска по определенным полям:
q=novel about love&qf=genre,topic&defType=dismax
Расширенный обработчик dismax (edismax) поддерживает указание полей.