Mercurial > hg > mpdl-group
diff software/mpdl-services/mpiwg-mpdl-cms-web/src/de/mpg/mpiwg/berlin/mpdl/servlets/cms/GetToken.java @ 23:e845310098ba
diverse Korrekturen
author | Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de> |
---|---|
date | Tue, 27 Nov 2012 12:35:19 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/software/mpdl-services/mpiwg-mpdl-cms-web/src/de/mpg/mpiwg/berlin/mpdl/servlets/cms/GetToken.java Tue Nov 27 12:35:19 2012 +0100 @@ -0,0 +1,87 @@ +package de.mpg.mpiwg.berlin.mpdl.servlets.cms; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.lucene.index.Term; + +import de.mpg.mpiwg.berlin.mpdl.cms.document.Token; +import de.mpg.mpiwg.berlin.mpdl.cms.lucene.IndexHandler; +import de.mpg.mpiwg.berlin.mpdl.exception.ApplicationException; + +public class GetToken extends HttpServlet { + private static final long serialVersionUID = 1L; + public GetToken() { + super(); + } + + public void init(ServletConfig config) throws ServletException { + super.init(config); + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + request.setCharacterEncoding("utf-8"); + response.setCharacterEncoding("utf-8"); + String docId = request.getParameter("docId"); + String attribute = request.getParameter("attribute"); + if (attribute == null) + attribute = "tokenOrig"; + String query = request.getParameter("query"); + String countStr = request.getParameter("count"); + if (countStr == null) + countStr = "100"; + int count = Integer.parseInt(countStr); + String outputFormat = request.getParameter("outputFormat"); + if (outputFormat == null) + outputFormat = "xml"; + try { + IndexHandler indexHandler = IndexHandler.getInstance(); + ArrayList<Token> token = null; + if (docId == null) + token = indexHandler.getToken(attribute, query, count); + else + token = indexHandler.getToken(docId, attribute, query, count); + if (outputFormat.equals("xml")) + response.setContentType("text/xml"); + else if (outputFormat.equals("html")) + response.setContentType("text/html"); + else + response.setContentType("text/xml"); + PrintWriter out = response.getWriter(); + out.print("<result>"); + out.print("<attribute>" + attribute + "</attribute>"); + out.print("<query>" + query + "</query>"); + out.print("<count>" + count + "</count>"); + out.print("<result>"); + if (token != null) { + for (int i=0; i<token.size(); i++) { + Token t = token.get(i); + Term term = t.getTerm(); + int freq = t.getFreq(); + out.print("<token>"); + out.print("<text>" + term.text() + "</text>"); + if (freq != -1) + out.print("<freq>" + freq + "</freq>"); + out.print("</token>"); + } + } + out.print("</result>"); + out.print("</result>"); + out.close(); + } catch (ApplicationException e) { + throw new ServletException(e); + } + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doGet(request, response); + } + +}