Как добавить новый прослушиватель запросов через SolR Config API? - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь добавить новый приемник запросов с помощью SolR Config API.Для этого я помещаю следующий JSON в конечную точку API Config моего ядра SolR:

{ "add-listener": { "name": "listener1", "class": "solr.QuerySenderListener", "event": "newSearcher", "queries": [{ "q": "any:whatever", "rows": "10", "start": "0" } ] } }

Это действие заполняет файл «configoverlay.json», который переопределяет стандартный solrconfig.XML.Этот файл теперь выглядит следующим образом:

{ "listener": { "listener1": { "name": "listener1", "class": "solr.QuerySenderListener", "event": "newSearcher", "queries": [{ "q": "any:whatever", "rows": "10", "start": "0" } ] } } }

По какой-то причине эта структура не подходит для SolR.Я получаю следующую ошибку в журналах SolR:

null:java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to org.apache.solr.common.util.NamedList at org.apache.solr.core.QuerySenderListener.newSearcher(QuerySenderListener.java:47) at org.apache.solr.core.SolrCore$5.call(SolrCore.java:1835) at java.util.concurrent.FutureTask.run(Unknown Source) at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor$1.run(ExecutorUtil.java:210) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

И, конечно, запрос, связанный с этим событием, поэтому не выполняется должным образом.

Видимо, запросФормат запроса не соответствует ожидаемому SolR ... Я не нашел ни одного примера обновления или создания событий в документации SolR Config API.Проблема должна быть связана с синтаксисом параметров объектов queries.

Если вы знаете, как форматировать сообщение json для получения правильного слушателя, дайте мне знать!

Inесли это имеет значение, я использую SolR 5.3.1

ps: смысл делать это через API конфигурации вместо solrconfig.xml, чтобы иметь возможность динамически изменять запросы на нагрев (чтобы отразить изменения конфигурации в нашемпродукт, который использует SolR для поиска).

Гийом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...