[Yanel-commits] rev 21731 - public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources

michi at wyona.com michi at wyona.com
Sun Jan 14 23:52:32 CET 2007


Author: michi
Date: 2007-01-14 23:52:30 +0100 (Sun, 14 Jan 2007)
New Revision: 21731

Modified:
   public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources/NutchResource.java
Log:
XML refactored

Modified: public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources/NutchResource.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources/NutchResource.java	2007-01-14 22:28:17 UTC (rev 21730)
+++ public/yanel/trunk/src/contributions/resources/nutch/src/java/org/wyona/yanel/impl/resources/NutchResource.java	2007-01-14 22:52:30 UTC (rev 21731)
@@ -78,8 +78,6 @@
     private final String NAME_SPACE = "http://www.wyona.org/yanel/1.0";
     private Configuration configuration = null;
     private File crawlDir = null;
-    private Element exceptionElement = null;
-    private Element resultsElement = null;
     private String exceptionMessage = null;
     private Document document = null;
     private int start = 0;
@@ -247,18 +245,37 @@
         if (searchTerm != null && searchTerm.length() > 0) {
             Element queryElement = (Element) rootElement.appendChild(document.createElementNS(NAME_SPACE, "query"));
             queryElement.appendChild(document.createTextNode(searchTerm));
-            resultsElement = (Element) rootElement.appendChild(document.createElementNS(NAME_SPACE, "results"));
-            resultsElement.setAttributeNS(NAME_SPACE, "start", "" + start);
+
+            loadOntology(); 
+            if (ontology != null) {
+                Iterator refinedQueryIterator = ontology.subclasses(searchTerm);
+                if (refinedQueryIterator.hasNext()) {
+                    Element refinedQueryElement = (Element) document.createElementNS(NAME_SPACE, "refined-query-terms");
+                    rootElement.appendChild(refinedQueryElement);
+                    while (refinedQueryIterator.hasNext()) {
+                        Element term = (Element) document.createElementNS(NAME_SPACE, "term");
+                        term.appendChild(document.createTextNode((String) refinedQueryIterator.next()));
+                        refinedQueryElement.appendChild(term);
+                    }
+                }
+            }
+
             try {
                 crawlDir = new File(configuration.get("searcher.dir"));
+                if (crawlDir != null && crawlDir.isDirectory()) {
+                    getSearchResults(rootElement, searchTerm, start, hitsPerPage);
+                } else {
+                    Element exceptionElement = (Element) rootElement.appendChild(document.createElementNS(NAME_SPACE, "exception"));
+                    exceptionMessage = "noSuchCrawlDirectory#" + crawlDir;
+                    exceptionElement.appendChild(document.createTextNode(exceptionMessage));
+                    log.error(exceptionMessage);
+                return;
+                }
             } catch (Exception e) {
                 log.error(e);
-                exceptionElement = (Element) resultsElement.appendChild(document.createElementNS(NAME_SPACE, "exception"));
+                Element exceptionElement = (Element) rootElement.appendChild(document.createElementNS(NAME_SPACE, "exception"));
                 exceptionElement.appendChild(document.createTextNode(e.getMessage()));
             }
-            if (crawlDir != null) {
-                getSearchResults(rootElement, searchTerm, start, hitsPerPage);
-            }
         } else {
             rootElement.appendChild(document.createElementNS(NAME_SPACE, "no-query"));
         }
@@ -502,38 +519,11 @@
      */
     private void getSearchResults(Element rootElement, String searchTerm, int start, int hitsPerPage) {
         try {
-            if (!crawlDir.isDirectory()) {
-                exceptionElement = (Element) resultsElement.appendChild(document.createElementNS(NAME_SPACE, "exception"));
-                exceptionMessage = "noSuchCrawlDirectory#" + crawlDir;
-                exceptionElement.appendChild(document.createTextNode(exceptionMessage));
-                log.warn(exceptionMessage);
-                return;
-            } else {
-
-
-        loadOntology(); 
-        if (ontology != null) {
-            Iterator refinedQueryIterator = ontology.subclasses(searchTerm);
-            if (refinedQueryIterator.hasNext()) {
-                Element refinedQueryElement = (Element) document.createElementNS(NAME_SPACE, "refined-query-terms");
-                rootElement.appendChild(refinedQueryElement);
-                while (refinedQueryIterator.hasNext()) {
-                    Element term = (Element) document.createElementNS(NAME_SPACE, "term");
-                    term.appendChild(document.createTextNode((String) refinedQueryIterator.next()));
-                    refinedQueryElement.appendChild(term);
-                }
-            }
-        }
-                
                 nutchBean = new NutchBean(configuration);
                 Query query = Query.parse(searchTerm, configuration);
                 Hits hits = nutchBean.search(query, totalHitCount);
                 totalHits = hits.getTotal();
                 int range = (int) Math.min(hits.getTotal() - start, hitsPerPage);
-                resultsElement.setAttributeNS(NAME_SPACE, "hitsPerPage", "" + hitsPerPage);
-                resultsElement.setAttributeNS(NAME_SPACE, "totalHits", "" + totalHits);
-                resultsElement.setAttributeNS(NAME_SPACE, "currentPageNo", "" + ((start / hitsPerPage) + 1));
-                resultsElement.setAttributeNS(NAME_SPACE, "numberOfPagesShown", "" + numberOfPagesShown);
                 Hit[] show = hits.getHits(start, range);
                 HitDetails[] details = nutchBean.getDetails(show);
                 Summary[] summaries = nutchBean.getSummary(details, query);
@@ -547,8 +537,18 @@
                 Element hitIndexNoElement = null;
                 Element fragmentsElement = null;
                 Element fragmentElement = null;
+
+                Element resultsElement = null;
                 if (show.length == 0) {
                     rootElement.appendChild((Element) document.createElementNS(NAME_SPACE, "no-results"));
+                    return;
+                } else {
+                    resultsElement = (Element) rootElement.appendChild(document.createElementNS(NAME_SPACE, "results"));
+                    resultsElement.setAttributeNS(NAME_SPACE, "start", "" + start);
+                    resultsElement.setAttributeNS(NAME_SPACE, "hitsPerPage", "" + hitsPerPage);
+                    resultsElement.setAttributeNS(NAME_SPACE, "totalHits", "" + totalHits);
+                    resultsElement.setAttributeNS(NAME_SPACE, "currentPageNo", "" + ((start / hitsPerPage) + 1));
+                resultsElement.setAttributeNS(NAME_SPACE, "numberOfPagesShown", "" + numberOfPagesShown);
                 }
                 for (int i = 0; i < show.length; i++) {
                     Element resultElement = (Element) resultsElement.appendChild(document.createElementNS(NAME_SPACE, "result"));
@@ -591,7 +591,6 @@
                         //fragmentElement.appendChild(document.createCDATASection(replaceAmpersand(fragments[j].getText())));
                     }
                 }
-            }
         } catch (Exception e) {
             log.error(e.getMessage(), e);
         }




More information about the Yanel-commits mailing list