@SuppressWarnings("unchecked") @GET @Produces(MediaType.APPLICATION_JSON) public Response volumes( @QueryParam("categoryId") Long categoryId, @QueryParam("page") Integer page, @QueryParam("q") String q) { Volumes volumes = new Volumes(); VolumeDAO volumeDAO = DAOFactory.getInstance().getVolumeDAO(); FullTextSession fts = org.hibernate.search.Search.getFullTextSession(volumeDAO.getSession()); try { Query query = buildLuceneQuery(categoryId, page, q); FullTextQuery createFullTextQuery = fts.createFullTextQuery(query, com.book.identification.model.Volume.class); addPaginationToQuery(createFullTextQuery, page); List<Volume> list = createFullTextQuery.list(); for (Volume volume : list) { volume.setPage(page); volume.setQ(q); } volumes.setVolumes(createFullTextQuery.list()); } catch (ParseException e1) { e1.printStackTrace(); } if (volumes.getVolumes().isEmpty()) { return Response.ok("volumes : {}").build(); } return Response.ok(volumes).build(); }
@GET @Produces(MediaType.APPLICATION_JSON) @Path("reindex/") public Response reindex() { VolumeDAO volumeDAO = DAOFactory.getInstance().getVolumeDAO(); FullTextSession fts = org.hibernate.search.Search.getFullTextSession(volumeDAO.getSession()); try { fts.createIndexer().startAndWait(); } catch (InterruptedException e) { e.printStackTrace(); } return Response.ok("reindex").build(); }
@GET @Produces(MediaType.APPLICATION_JSON) @Path("hash/") public Response hashing() throws IOException { VolumeDAO volumeDAO = DAOFactory.getInstance().getVolumeDAO(); List<Volume> findAll = volumeDAO.findAll(); Transaction beginTransaction = volumeDAO.getSession().beginTransaction(); for (Volume volume : findAll) { String fileSHA1 = DigestUtils.shaHex(FileUtils.openInputStream(new File(volume.getPath()))); volume.setHashSH1(fileSHA1); } beginTransaction.commit(); return Response.ok("hashed").build(); }