TermsComponentを使用してSolrj でautosuggest/terms
を実装しようとしていますが、パス (つまり の部分)を指定する方法がわかりませんhttp://localhost:8983/solr/terms
。
Solrjを使用してパスを指定するにはどうすればよいですか?
おまけ:terms.fl
パラメータに複数のフィールドを指定する方法はありますか?
ありがとう
TermsComponentを使用してSolrj でautosuggest/terms
を実装しようとしていますが、パス (つまり の部分)を指定する方法がわかりませんhttp://localhost:8983/solr/terms
。
Solrjを使用してパスを指定するにはどうすればよいですか?
おまけ:terms.fl
パラメータに複数のフィールドを指定する方法はありますか?
ありがとう
どうぞ:
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
。
私を正しい方向に向けてくれてありがとう、マウリシオ。
私は、TermsComponent を機能させるために多くの時間を費やしています。
一日の終わりに、"/terms" 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");
これが将来誰かに役立つことを願っています。
TermsComponent の直接サポートは SolrJ 1.4.1 では利用できませんが、対応する patchを見てください。自分で実装するのは非常に簡単です。
TermsComponent は /terms を使用する必要のない標準コンポーネントであるため、標準のクエリ リクエスト ハンドラにフックすることができます。