Solrj with Solr Suggestester

What is the correct way to get results from solrj using Solr Suggestester?

This is my request:

SolrQuery query = new SolrQuery(); query.setRequestHandler("/suggest"); query.setParam("suggest", "true"); query.setParam("suggest.build", "true"); query.setParam("suggest.dictionary", "mySuggester"); query.setParam("suggest.q", "So"); QueryResponse response = server.query(query); 

However, it was extremely difficult for me to get an answer. I got the answer:

 NamedList obj = (NamedList)((Map)response.getResponse().get("suggest")).get("mySuggester"); SimpleOrderedMap obj2 = (SimpleOrderedMap) obj.get("So"); List<SimpleOrderedMap> obj3 = (List<SimpleOrderedMap>) obj2.get("suggestions"); 

This seems to say a lot about the objects I get from the answer, and it will be difficult to anticipate errors.

Is there a better and cleaner way than this?

+5
source share
3 answers

The best option is to get it as a List, below the code worked for me

  HttpSolrClient solrClient = new HttpSolrClient(solrURL); SolrQuery query = new SolrQuery(); query.setRequestHandler("/suggest"); query.setParam("suggest.q", "Ins"); query.setParam("wt", "json"); try { QueryResponse response = solrClient.query(query); System.out.println(response.getSuggesterResponse().getSuggestedTerms()); List<String> types=response.getSuggesterResponse().getSuggestedTerms().get("infixSuggester"); System.out.println(types); } catch (SolrServerException | IOException e) { e.printStackTrace(); } 
+1
source

You can get offers through SpellCheckResponse by doing the following

 SpellCheckResponse spellCheckResponse=response.getSpellCheckResponse(); 

See the link for more details.

0
source

Source: https://habr.com/ru/post/1213266/


All Articles