Solrj: как указать путь - PullRequest
       10

Solrj: как указать путь

4 голосов
/ 22 февраля 2011

Я пытаюсь использовать TermsComponent для реализации автозаполнения с помощью Solrj, но я не вижу, как указать путь (т. Е. /terms часть http://localhost:8983/solr/terms).

Как мне указать путь с помощью Solrj?

Бонус: есть ли способ указать несколько полей для параметра terms.fl?

Спасибо

Ответы [ 3 ]

4 голосов
/ 23 февраля 2011

Вот так:

    SolrQuery query = new SolrQuery();
    query.setParam(CommonParams.QT, "/terms");
    query.setParam(TermsParams.TERMS, true);
    query.setParam(TermsParams.TERMS_LIMIT, "10");
    query.setParam(TermsParams.TERMS_FIELD, "title", "description");  // or whatever fields you want
    query.setParam(TermsParams.TERMS_PREFIX_STR, typedInput);

Предполагается, что у вас есть элемент TermsComponent, подключенный по адресу "/ Terms";там есть файл по умолчанию для solrconfig.xml.

И для бонуса: вы можете добавить несколько полей, просто добавив несколько строк для TERMS_FIELD (или несколько URL &terms.fl=foo параметров).

Спасибо, Маурисио, за указание на меня вправильное направление.

2 голосов
/ 16 апреля 2013

Я трачу столько времени на то, чтобы заставить работать TermsComponent.

В конце дня я понял, что существует другой набор команд, которые вам нужно вызывать для получения результатов из"/ term" requestHandler.

Я пытался получить результаты, используя

HttpSolrServer server = new HttpSolrServ(solrUrl);
List<SolrDocument> list = server.query(query).getResults()

Тем не менее, правильный способ получения результатов от TermsComponent -

HttpSolrServer server = new HttpSolrServ(solrUrl);
TermsResponse termResp = server.query(query).getTermsResponse();
List<Term> tList = termResp.getTerms("fieldNAME");

Я надеюсь, что это может помочь кому-то еще в будущем.

2 голосов
/ 23 февраля 2011

Прямая поддержка TermsComponent недоступна в SolrJ 1.4.1, но взгляните на соответствующий патч , его довольно легко реализовать самостоятельно.

Так как TermsComponent является стандартомКомпонент, который вам не нужно использовать / термины, вы можете подключить его к стандартному обработчику запросов .

...