Solr. Как узнать, какой обработчик запроса используется. Пока вы находитесь внутри поискового компонента - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь создать плагин solr для отчета о различной статистике о запросах solr, включая такие вещи, как количество результатов, какие термины были использованы, и какое ядро ​​и обработчик запросов использовались.

Я думал осделать это как пользовательский SearchComponent и добавить его в качестве последнего компонента во всех RequestHandlers, но у меня есть одна проблема: я не могу выяснить, какой обработчик запросов в настоящее время используется внутри моего компонента поиска.То есть в моем классе плагинов, который расширяет SearchComponent, как я могу найти обработчик запросов?

Мне кажется, что это, вероятно, легко доступно в некоторой области, и я просто слепой.Любые советы?

Редактировать: я мог бы настроить один компонент поиска для каждого обработчика запросов, где каждый из них получит поле с именем / идентификатором обработчика запроса.Хотя это не очень красиво.

У меня также есть легкое чувство, что весь мой подход неверен, так как я не очень хорошо знаю Solr.

1 Ответ

0 голосов
/ 02 апреля 2019

Вы можете поместить в каждый обработчик запроса атрибут внутри инвариантов (вы также можете поместить его в раздел по умолчанию, но, поскольку он является инвариантом, имеет смысл поместить его туда), который присваивает имя обработчику и затем получает доступ к req.getParams.найти этот параметр (handlerName).

<requestHandler name="/myhandler" class="solr.SearchHandler">
        <lst name="invariants">
            <str name="handlerName">myhandler</str>
            .
            .
        </lst>
        .
        .
    </requestHandler>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...