#solr #dismax
Вопрос:
Я новичок в солре. После выполнения обучающего упражнения 1(https://solr.apache.org/guide/8_9/solr-tutorial.html), я могу выполнить некоторый запрос solr на своей машине loacl.
Если я хочу получить результат без условий, я сделаю запрос следующим образом
http://127.0.0.1:8983/solr/#/techproducts/query?q=*:*amp;q.op=OR
Это работает довольно хорошо.
Но когда я переключаюсь на «dismax» и пытаюсь получить аналогичный результат, мне нужно использовать «q.alt». Запрос выглядит так
http://127.0.0.1:8983/solr/#/techproducts/query?q.op=ORamp;defType=dismaxamp;q.alt=*:*
Однако этот запрос не привел ни к какому результату, что довольно странно. Даже если я думал, что указал строку, это все равно не сработает.
http://127.0.0.1:8983/solr/#/techproducts/query?q.op=ORamp;defType=dismaxamp;q.alt=*:*amp;row=0
Кто-нибудь сталкивался с такой же проблемой раньше?
Ответ №1:
Эти параметры не предназначены для использования с URL-адресами пользовательского интерфейса; они предназначены для отправки непосредственно в Solr. Пользовательский интерфейс представляет собой интерфейс Javascript, который взаимодействует с API Solr за кулисами. Вы можете видеть, что в ваших URL-адресах есть локальный якорь ( #
), и это всего лишь ссылки, которые пользовательский интерфейс на основе javascript использует для загрузки нужной страницы.
rows
Параметр также называется rows
«нет row
«, и при использовании с 0
ним никакие документы не будут возвращены (в примере он приведен в качестве примера использования фасетов с полным количеством — для этого вам нужно запросить фасеты , чтобы это имело смысл).
Фактический URL-адрес для запроса Solr для сопоставления документов будет следующим:
http://127.0.0.1:8983/solr/techproducts/select?defType=edismaxamp;q.alt=*:*
Этот URL-адрес отображается в пользовательском интерфейсе поверх результатов запроса при использовании query
страницы.
Также обычно нет причин использовать dismax
и не edismax
в наши дни, как edismax
и все, что делал старый обработчик dismax, и с большей функциональностью.