diff --git a/backend/foodspector/src/main/java/ch/hepia/foodspector/SolrClient.java b/backend/foodspector/src/main/java/ch/hepia/foodspector/SolrClient.java new file mode 100644 index 0000000000000000000000000000000000000000..5d7abf08e21562f8f1b2495c70cbce04792dfc44 --- /dev/null +++ b/backend/foodspector/src/main/java/ch/hepia/foodspector/SolrClient.java @@ -0,0 +1,43 @@ +package ch.hepia.foodspector; + +import org.apache.solr.client.solrj.SolrQuery; +import org.apache.solr.client.solrj.impl.HttpSolrClient; +import org.apache.solr.client.solrj.response.QueryResponse; +import org.apache.solr.common.SolrDocumentList; + +public class SolrClient { + + private static String SOLR_URL = "http://localhost:8983/solr"; + private static SolrClient inst; + private HttpSolrClient client; + + private SolrClient(String solrUrl) { + client = new HttpSolrClient.Builder(solrUrl) + .withConnectionTimeout(10000) + .withSocketTimeout(60000) + .build(); + } + + public static SolrClient getInstance() { + if(inst == null) + inst = new SolrClient( SOLR_URL ); + return inst; + } + + public void query( String word ) { + SolrQuery query = new SolrQuery(); + query.setRequestHandler("/montest"); + System.out.println( word.strip().replaceAll("[-+.^:,()]","")); + query.set( "q", "name:" + word.strip().replaceAll("[-+.^:,()]","") ); + + try { + QueryResponse r = client.query( "foodspector", query ); + SolrDocumentList list = r.getResults(); + list.forEach( System.out::println ); + } catch (Exception e) { + System.out.println(e.getMessage()); + } + + System.out.println( "=========" ); + } +} diff --git a/backend/foodspector/src/main/java/ch/hepia/foodspector/controllers/ImageController.java b/backend/foodspector/src/main/java/ch/hepia/foodspector/controllers/ImageController.java index 0103b33f6de16b00d88587d1ac32c0cefd0f9b7a..fdfb4266c73592681dfc7f33e4fc0cafac3fc301 100644 --- a/backend/foodspector/src/main/java/ch/hepia/foodspector/controllers/ImageController.java +++ b/backend/foodspector/src/main/java/ch/hepia/foodspector/controllers/ImageController.java @@ -1,5 +1,6 @@ package ch.hepia.foodspector.controllers; +import ch.hepia.foodspector.SolrClient; import io.javalin.http.Context; import io.javalin.http.UploadedFile; import net.sourceforge.tess4j.ITesseract; @@ -49,37 +50,7 @@ public class ImageController { try { String result = tess.doOCR(test); - Arrays.stream( result.split(",") ).forEach( t -> System.out.println(t.strip()) ); - - - // Inits the Solr Client. - final String solrUrl = "http://localhost:8983/solr"; - HttpSolrClient solrClient = new HttpSolrClient.Builder(solrUrl) - .withConnectionTimeout(10000) - .withSocketTimeout(60000) - .build(); - - Arrays.stream( result.split(",") ).forEach( t -> { - - try { - - SolrQuery query = new SolrQuery(); - query.setRequestHandler("/select"); - System.out.println( t.strip().replaceAll("[-+.^:,()]","")); - query.set( "q", "name:" + t.strip().replaceAll("[-+.^:,()]","") ); - - QueryResponse r = solrClient.query( "foodspector", query ); - SolrDocumentList list = r.getResults(); - - list.forEach( System.out::println ); - System.out.println( "=========" ); - - } catch (Exception e) { - System.out.println( e.getMessage() ); - } - - }); - // System.out.println(result); + Arrays.stream( result.split(",") ).forEach(SolrClient.getInstance()::query); } catch (Exception e) { System.err.println(e.getMessage()); }