Using the /suggest handler wired to SuggestComponent, the SpellCheckResponse 
objects are not populated.
Reason is that QueryResponse looks for a top-level element named "spellcheck"

      else if ( "spellcheck".equals( n ) )  {
        _spellInfo = (NamedList<Object>) res.getVal( i );
        extractSpellCheckInfo( _spellInfo );
      }

Earlier the suggester was the same as the Spell component, but now with its own 
component, suggestions are put in "suggest".

I think we're lacking a SuggestResponse.java for parsing suggest responses..??

--
Jan Høydahl, search solution architect
Cominvent AS - www.cominvent.com

> 26. sep. 2014 kl. 07.27 skrev Clemens Wyss DEV <clemens...@mysign.ch>:
> 
> Thx to you two.
> 
> Just in case anybody else is trying to do "this". The following SolrJ code 
> corresponds to the http request
> GET http://localhost:8983/solr/solrpedia/suggest?q=atmo
> of  "Solr in Action" (chapter 10):
> ...
> SolrServer server = new 
> HttpSolrServer("http://localhost:8983/solr/solrpedia";);
> SolrQuery query = new SolrQuery( "atmo" );
> query.setRequestHandler( "/suggest" );
> QueryResponse queryresponse = server.query( query );
> ...
> queryresponse.getSpellCheckResponse().getSuggestions();
> ...
> 
> 
> -----Ursprüngliche Nachricht-----
> Von: Shawn Heisey [mailto:s...@elyograg.org] 
> Gesendet: Donnerstag, 25. September 2014 17:37
> An: solr-user@lucene.apache.org
> Betreff: Re: /suggest through SolrJ?
> 
> On 9/25/2014 8:43 AM, Erick Erickson wrote:
>> You can call anything from SolrJ that you can call from a URL.
>> SolrJ has lots of convenience stuff to set particular parameters, 
>> parse the response, etc... But in the end it's communicating with Solr 
>> via a URL.
>> 
>> Take a look at something like SolrQuery for instance. It has a nice 
>> command setFacetPrefix. Here's the entire method:
>> 
>> public SolrQuery setFacetPrefix( String field, String prefix ) {
>>    this.set( FacetParams.FACET_PREFIX, prefix );
>>    return this;
>> }
>> 
>> which is really
>>    this.set( "facet.prefix", prefix ); All it's really doing is 
>> setting a SolrParams key/value pair which is equivalent to 
>> &facet.prefix=blahblah on a URL.
>> 
>> As I remember, there's a "setPath" method that you can use to set the 
>> destination for the request to "suggest" (or maybe "/suggest"). It's 
>> something like that.
> 
> Yes, like Erick says, just use SolrQuery for most accesses to Solr on 
> arbitrary URL paths with arbitrary URL parameters.  The "set" method is how 
> you include those parameters.
> 
> The SolrQuery method Erick was talking about at the end of his email is 
> setRequestHandler(String), and you would set that to "/suggest".  Full 
> disclosure about what this method actually does: it also sets the "qt"
> parameter, but with the modern example Solr config, the qt parameter doesn't 
> do anything -- you must actually change the URL path on the request, which 
> this method will do if the value starts with a forward slash.
> 
> Thanks,
> Shawn
> 

Reply via email to