Параметр qt в Solr 5.5

Я переношу solr с версии 4.6 на 5.5, у нас есть отдельные обработчики запросов, в которых мы предоставляем запрос без имени поля, например q=book. Но для выбора обработчика запроса нам нужно передать запрос с именем поля, например q=type:book. если я даю без имени поля, я получал сообщение об ошибке «имя поля не указано в df», что нормально. Но после перехода на 5.5 запрос с другим обработчиком запросов также показывает эту ошибку, и это тоже только тогда, когда я нажимаю запрос через браузер. Тот же запрос через код Java работает нормально, а также указанный ниже запрос работает нормально: http://localhost:8983/solr/publications?q=book&wt=xml, где это не работает http://localhost:8983/solr/select?q=book&wt=xml&qt=/publications.

Оба запроса отлично работали в версии solr 4.

Есть ли какие-либо изменения с этим параметром? или обязательно использовать первый запрос?


person User1203    schedule 31.05.2017    source источник


Ответы (1)


Если вы не укажете имя поля с параметром q. solr использует имя поля по умолчанию, которое можно указать для каждого обработчика запросов в файле solrconfig.xml с помощью df.

пример:

<requestHandler name="/select" class="solr.SearchHandler">
    <!-- default values for query parameters can be specified, these
         will be overridden by parameters in the request
      -->
     <lst name="defaults">
       <str name="echoParams">explicit</str>
       <int name="rows">10</int>
       <str name="df">text</str>
     </lst>
  </requestHandler>

И qt параметр

В файле solrconfig.xml есть <requestDispatcher>, для которого по умолчанию установлено значение false.

Если для requestDispatcher установлено значение true solr request

пример: http://localhost:8983/solr/select?q=book&wt=xml&qt=/publications.

вышеприведенный запрос использует «/ select», если в ваших файлах конфигурации нет обработчика запросов с таким именем. Вместо того, чтобы быть ошибкой, Solr использует параметр «qt» для поиска обработчика по имени.

person Vinod    schedule 01.06.2017
comment
да, я сделал requestDispatcher истинным, но у меня та же проблема.. :( ‹requestDispatcher handleSelect=true› - person User1203; 05.06.2017