REST controller methods for new full text searches
authorAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Thu, 20 Sep 2012 19:41:22 +0000 (19:41 +0000)
committerAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Thu, 20 Sep 2012 19:41:22 +0000 (19:41 +0000)
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonListController.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ITaxonService.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TaxonServiceImpl.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/TaxonServiceSearchTest.java

index 3433f501cb35d4cfd4215222cf13bcb0022f4a2a..c64f9f929d8622b6e8c5822668411dfce1eda189 100644 (file)
@@ -179,7 +179,7 @@ public class TaxonListController extends IdentifiableListController<TaxonBase, I
      */\r
     @RequestMapping(method = RequestMethod.GET, value={"findByDescriptionElementFullText"})\r
     public Pager<SearchResult<TaxonBase>> dofindByDescriptionElementFullText(\r
-            @RequestParam(value = "clazz", required = false) Class clazz,\r
+            @RequestParam(value = "clazz", required = false) Class<? extends DescriptionElementBase> clazz,\r
             @RequestParam(value = "query", required = true) String queryString,\r
             @RequestParam(value = "tree", required = false) UUID treeUuid,\r
             @RequestParam(value = "features", required = false) UuidList featureUuids,\r
@@ -214,7 +214,79 @@ public class TaxonListController extends IdentifiableListController<TaxonBase, I
             }\r
         }\r
 \r
-        Pager<SearchResult<TaxonBase>> pager = service.findByDescriptionElementFullText(clazz, queryString, classification, features, languages, highlighting, pagerParams.getPageSize(), pagerParams.getPageIndex(), ((List<OrderHint>)null), initializationStrategy);\r
+        Pager<SearchResult<TaxonBase>> pager = service.findByDescriptionElementFullText(\r
+                clazz, queryString, classification, features, languages, highlighting,\r
+                pagerParams.getPageSize(), pagerParams.getPageIndex(), ((List<OrderHint>)null),\r
+                initializationStrategy);\r
+        return pager;\r
+    }\r
+\r
+    @RequestMapping(method = RequestMethod.GET, value={"findByFullText"})\r
+    public Pager<SearchResult<TaxonBase>> dofindByFullText(\r
+            @RequestParam(value = "clazz", required = false) Class<? extends TaxonBase> clazz,\r
+            @RequestParam(value = "query", required = true) String queryString,\r
+            @RequestParam(value = "tree", required = false) UUID treeUuid,\r
+            @RequestParam(value = "languages", required = false) List<Language> languages,\r
+            @RequestParam(value = "hl", required = false) Boolean highlighting,\r
+            @RequestParam(value = "pageNumber", required = false) Integer pageNumber,\r
+            @RequestParam(value = "pageSize", required = false) Integer pageSize,\r
+            HttpServletRequest request,\r
+            HttpServletResponse response\r
+            )\r
+             throws IOException, ParseException {\r
+\r
+         logger.info("findByFullText : " + request.getRequestURI() + "?" + request.getQueryString() );\r
+\r
+         PagerParameters pagerParams = new PagerParameters(pageSize, pageNumber);\r
+         pagerParams.normalizeAndValidate(response);\r
+\r
+         if(highlighting == null){\r
+             highlighting = false;\r
+         }\r
+\r
+         Classification classification = null;\r
+        if(treeUuid != null){\r
+            classification = classificationService.find(treeUuid);\r
+        }\r
+\r
+        Pager<SearchResult<TaxonBase>> pager = service.findByFullText(clazz, queryString, classification, languages,\r
+                highlighting, pagerParams.getPageSize(), pagerParams.getPageIndex(), ((List<OrderHint>)null),\r
+                initializationStrategy);\r
+        return pager;\r
+    }\r
+\r
+    @RequestMapping(method = RequestMethod.GET, value={"findByEverythingFullText"})\r
+    public Pager<SearchResult<TaxonBase>> dofindByEverythingFullText(\r
+            @RequestParam(value = "clazz", required = false) Class<? extends TaxonBase> clazz,\r
+            @RequestParam(value = "query", required = true) String queryString,\r
+            @RequestParam(value = "tree", required = false) UUID treeUuid,\r
+            @RequestParam(value = "languages", required = false) List<Language> languages,\r
+            @RequestParam(value = "hl", required = false) Boolean highlighting,\r
+            @RequestParam(value = "pageNumber", required = false) Integer pageNumber,\r
+            @RequestParam(value = "pageSize", required = false) Integer pageSize,\r
+            HttpServletRequest request,\r
+            HttpServletResponse response\r
+            )\r
+             throws IOException, ParseException {\r
+\r
+         logger.info("findByEverythingFullText : " + request.getRequestURI() + "?" + request.getQueryString() );\r
+\r
+         PagerParameters pagerParams = new PagerParameters(pageSize, pageNumber);\r
+         pagerParams.normalizeAndValidate(response);\r
+\r
+         if(highlighting == null){\r
+             highlighting = false;\r
+         }\r
+\r
+         Classification classification = null;\r
+        if(treeUuid != null){\r
+            classification = classificationService.find(treeUuid);\r
+        }\r
+\r
+        Pager<SearchResult<TaxonBase>> pager = service.findByEverythingFullText(\r
+                queryString, classification, languages, highlighting,\r
+                pagerParams.getPageSize(), pagerParams.getPageIndex(),\r
+                ((List<OrderHint>)null), initializationStrategy);\r
         return pager;\r
     }\r
 }
\ No newline at end of file
index fde032fca1e62f111eb5dd7ec8fe18ec0e79b4d5..55923c963fadddd6830710323a59e9219ab6fa3d 100644 (file)
@@ -604,10 +604,9 @@ public interface ITaxonService extends IIdentifiableEntityService<TaxonBase>{
             List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints,
             List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException;
 
-    public Pager<SearchResult<TaxonBase>> findByEveryThingFullText(String queryString,
-            Classification classification, List<Feature> features, List<Language> languages,
-            boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints
-            , List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException;
+    public Pager<SearchResult<TaxonBase>> findByEverythingFullText(String queryString,
+            Classification classification, List<Language> languages, boolean highlightFragments,
+            Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException;
 
 
 
index 8593f01a2209732e859b25703b7ea690cf0f1872..bb8cc832b2a05099da696591f7d8899c02a9bbeb 100644 (file)
@@ -1219,12 +1219,11 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     }\r
 \r
 \r
-    public Pager<SearchResult<TaxonBase>> findByEveryThingFullText(String queryString,\r
-            Classification classification, List<Feature> features, List<Language> languages,\r
-            boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints\r
-            , List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException {\r
+    public Pager<SearchResult<TaxonBase>> findByEverythingFullText(String queryString,\r
+            Classification classification, List<Language> languages, boolean highlightFragments,\r
+            Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException {\r
 \r
-        LuceneSearch luceneSearchByDescriptionElement = prepareByDescriptionElementFullTextSearch(null, queryString, classification, features, languages, highlightFragments);\r
+        LuceneSearch luceneSearchByDescriptionElement = prepareByDescriptionElementFullTextSearch(null, queryString, classification, null, languages, highlightFragments);\r
         LuceneSearch luceneSearchByTaxonBase = prepareFindByFullTextSearch(null, queryString, classification, languages, highlightFragments);\r
 \r
         LuceneMultiSearch multiSearch = new LuceneMultiSearch(luceneSearchByDescriptionElement, luceneSearchByTaxonBase);\r
index 2ad0583d68f6464ccf4655372f96bd00c8a9c0dd..61677469d7caddf4da70c109bbfe0981e882eb21 100644 (file)
@@ -547,13 +547,13 @@ public class TaxonServiceSearchTest extends CdmTransactionalIntegrationTest {
 \r
         Pager<SearchResult<TaxonBase>> pager;\r
 \r
-        pager = taxonService.findByEveryThingFullText("genus", null, null,  null, false, null, null, null, null); // --> 1\r
+        pager = taxonService.findByEverythingFullText("genus", null, null,  false, null, null, null, null); // --> 1\r
         Assert.assertEquals("Expecting 1 entity", Integer.valueOf(1), pager.getCount());\r
 \r
-        pager = taxonService.findByEveryThingFullText("Balsam-Tanne", null, null, Arrays.asList(new Language[]{Language.GERMAN()}), false, null, null, null, null);\r
+        pager = taxonService.findByEverythingFullText("Balsam-Tanne", null, Arrays.asList(new Language[]{Language.GERMAN()}), false, null, null, null, null);\r
         Assert.assertEquals("expecting to find the GERMAN 'Balsam-Tanne'", Integer.valueOf(1), pager.getCount());\r
 \r
-        pager = taxonService.findByEveryThingFullText("Abies", null, null, null, true, null, null, null, null);\r
+        pager = taxonService.findByEverythingFullText("Abies", null, null, true, null, null, null, null);\r
         Assert.assertEquals("Expecting 8 entities", Integer.valueOf(8), pager.getCount());\r
         SearchResult<TaxonBase> searchResult = pager.getRecords().get(0);\r
         Assert.assertTrue("the map of highlighted fragments should contain at least one item", searchResult.getFieldHighlightMap().size() > 0);\r