\r
private static Logger logger = Logger.getLogger(TaxonServiceSearchTest.class);\r
\r
+ private static final int BENCHMARK_ROUNDS = 300;\r
+\r
private static final UUID ABIES_BALSAMEA_UUID = UUID.fromString("f65d47bd-4f49-4ab1-bc4a-bc4551eaa1a8");\r
private static final UUID ABIES_ALBA_UUID = UUID.fromString("7dbd5810-a3e5-44b6-b563-25152b8867f4");\r
private static final UUID CLASSIFICATION_UUID = UUID.fromString("2a5ceebb-4830-4524-b330-78461bf8cb6b");\r
private static final UUID DESC_ABIES_ALBA_UUID = UUID.fromString("ec8bba03-d993-4c85-8472-18b14942464b");\r
private static final UUID DESC_ABIES_KAWAKAMII_SEC_KOMAROV_UUID = UUID.fromString("e9d8c2fd-6409-46d5-9c2e-14a2bbb1b2b1");\r
\r
-\r
private static final int NUM_OF_NEW_RADOM_ENTITIES = 1000;\r
\r
private boolean includeUnpublished = true;\r
\r
-\r
-\r
@SpringBeanByType\r
private ITaxonService taxonService;\r
@SpringBeanByType\r
@SpringBeanByType\r
private IDescriptionService descriptionService;\r
@SpringBeanByType\r
+ private IDescriptionElementService descriptionElementService;\r
+ @SpringBeanByType\r
private INameService nameService;\r
@SpringBeanByType\r
private ITaxonNodeService nodeService;\r
@SpringBeanByType\r
private ICdmMassIndexer indexer;\r
\r
-\r
- private static final int BENCHMARK_ROUNDS = 300;\r
-\r
private Set<Class<? extends CdmBase>> typesToIndex = null;\r
\r
private NamedArea germany;\r
- private NamedArea france ;\r
- private NamedArea russia ;\r
- private NamedArea canada ;\r
+ private NamedArea france;\r
+ private NamedArea russia;\r
+ private NamedArea canada;\r
\r
@Before\r
public void setUp() throws Exception {\r
assertNotNull("nameService should exist", nameService);\r
}\r
\r
-\r
@SuppressWarnings("rawtypes")\r
@Test\r
@DataSet\r
Assert.assertEquals("Expecting 8 entities", 8, pager.getCount().intValue());\r
}\r
\r
-\r
@SuppressWarnings("rawtypes")\r
@Test\r
@DataSet\r
pager = taxonService.findByDescriptionElementFullText(CommonTaxonName.class, "Wei"+UTF8.SHARP_S+"tanne", null, subtree, null,\r
Arrays.asList(new Language[] { Language.RUSSIAN() }), false, null, null, null, null);\r
Assert.assertEquals("Expecting no entity when searching in Russian", 0, pager.getCount().intValue());\r
-\r
}\r
\r
@SuppressWarnings("rawtypes")\r
String[] descriptionElementUuidStr = indexDocument.getValues("uuid");\r
String[] inDescriptionUuidStr = indexDocument.getValues("inDescription.uuid");\r
// is only one uuid!\r
- DescriptionElementBase textData = descriptionService.getDescriptionElementByUuid(UUID.fromString(descriptionElementUuidStr[0]));\r
+ DescriptionElementBase textData = descriptionElementService.find(UUID.fromString(descriptionElementUuidStr[0]));\r
\r
((TextData)textData).removeText(Language.GERMAN());\r
((TextData)textData).putText(Language.SPANISH_CASTILIAN(), "abeto bals"+UTF8.SMALL_A_ACUTE+"mico");\r
\r
- descriptionService.saveDescriptionElement(textData);\r
+ descriptionElementService.save(textData);\r
commitAndStartNewTransaction(null);\r
// printDataSet(System.out, new String[] {\r
// "DESCRIPTIONELEMENTBASE", "LANGUAGESTRING", "DESCRIPTIONELEMENTBASE_LANGUAGESTRING" }\r
\r
@Test\r
@DataSet\r
- //http://dev.e-taxonomy.eu/trac/ticket/5477\r
+ //https://dev.e-taxonomy.eu/redmine/issues/5477\r
public final void testFindTaxaAndNamesByFullText_AreaFilter_issue5477() throws IOException, LuceneParseException, LuceneMultiSearchException {\r
\r
TaxonNode subtree = null;\r
logger.info("Benchmark result - [find taxon by CommonName via lucene] : " + duration + "ms (" + BENCHMARK_ROUNDS + " benchmark rounds )");\r
}\r
\r
+ /**\r
+ *\r
+ */\r
+ private void refreshLuceneIndex() {\r
+\r
+// commitAndStartNewTransaction(null);\r
+ commit();\r
+ endTransaction();\r
+ indexer.purge(DefaultProgressMonitor.NewInstance());\r
+ indexer.reindex(typesToIndex, DefaultProgressMonitor.NewInstance());\r
+ startNewTransaction();\r
+// commitAndStartNewTransaction(null);\r
+ }\r
+\r
+ /**\r
+ * @param numberOfNew\r
+ *\r
+ */\r
+ private void createRandomTaxonWithCommonName(int numberOfNew) {\r
+\r
+ logger.debug(String.format("creating %1$s random taxan with CommonName", numberOfNew));\r
+\r
+ commitAndStartNewTransaction(null);\r
+\r
+ Reference sec = ReferenceFactory.newBook();\r
+ referenceService.save(sec);\r
+\r
+ for (int i = numberOfNew; i < numberOfNew; i++) {\r
+ RandomStringUtils.randomAlphabetic(10);\r
+ String radomName = RandomStringUtils.randomAlphabetic(5) + " " + RandomStringUtils.randomAlphabetic(10);\r
+ String radomCommonName = RandomStringUtils.randomAlphabetic(10);\r
+\r
+ IBotanicalName name = TaxonNameFactory.NewBotanicalInstance(Rank.SPECIES());\r
+ name.setNameCache(radomName, true);\r
+ Taxon taxon = Taxon.NewInstance(name, sec);\r
+ taxonService.save(taxon);\r
+\r
+ TaxonDescription description = TaxonDescription.NewInstance(taxon);\r
+ description.addElement(CommonTaxonName.NewInstance(radomCommonName, Language.GERMAN()));\r
+ descriptionService.save(description);\r
+ }\r
+\r
+ commitAndStartNewTransaction(null);\r
+ }\r
+\r
+ private <T extends CdmBase> void logFreeTextSearchResults(Pager<SearchResult<T>> pager, Level level, String[] docFields){\r
+ if(level == null){\r
+ level = Level.DEBUG;\r
+ }\r
+ if(logger.isEnabledFor(level)){\r
+ StringBuilder b = new StringBuilder();\r
+ b.append("\n");\r
+ int i = 0;\r
+ for(SearchResult<?> sr : pager.getRecords()){\r
+\r
+ b.append(" ").append(i++).append(" - ");\r
+ b.append("score:").append(sr.getScore()).append(", ");\r
+\r
+ if(docFields != null){\r
+ b.append("docs : ");\r
+ for(Document doc : sr.getDocs()) {\r
+ b.append("<");\r
+ for(String f : docFields){\r
+ b.append(f).append(":").append(Arrays.toString(doc.getValues(f)));\r
+ }\r
+ b.append(">");\r
+ }\r
+ }\r
+\r
+ CdmBase entity = sr.getEntity();\r
+ if(entity == null){\r
+ b.append("NULL");\r
+ } else {\r
+ b.append(entity.getClass().getSimpleName()).\r
+ append(" [").append(entity.getId()).\r
+ append(" | ").append(entity.getUuid()).append("] : ").\r
+ append(entity.toString());\r
+\r
+ }\r
+ b.append("\n");\r
+ }\r
+ logger.log(level, b);\r
+ }\r
+ }\r
+\r
+ private Set<UUID> getTaxonUuidSet(@SuppressWarnings("rawtypes") Pager<SearchResult<TaxonBase>> pager) {\r
+ Set<UUID> result = new HashSet<>();\r
+ for (@SuppressWarnings("rawtypes") SearchResult<TaxonBase> searchResult : pager.getRecords()){\r
+ result.add(searchResult.getEntity().getUuid());\r
+ }\r
+ return result;\r
+ }\r
+\r
+\r
/**\r
* uncomment @Test annotation to create the dataset for this test\r
*/\r
@Override\r
- // @Test\r
- @DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class, value="BlankDataSet.xml")\r
+// @Test\r
+ @DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class, value="../../database/ClearDBDataSet.xml")\r
public final void createTestDataSet() throws FileNotFoundException {\r
\r
Classification europeanAbiesClassification = Classification.NewInstance("European Abies");\r
\r
}\r
\r
- /**\r
- *\r
- */\r
- private void refreshLuceneIndex() {\r
-\r
-// commitAndStartNewTransaction(null);\r
- commit();\r
- endTransaction();\r
- indexer.purge(DefaultProgressMonitor.NewInstance());\r
- indexer.reindex(typesToIndex, DefaultProgressMonitor.NewInstance());\r
- startNewTransaction();\r
-// commitAndStartNewTransaction(null);\r
- }\r
-\r
- /**\r
- * @param numberOfNew\r
- *\r
- */\r
- private void createRandomTaxonWithCommonName(int numberOfNew) {\r
-\r
- logger.debug(String.format("creating %1$s random taxan with CommonName", numberOfNew));\r
-\r
- commitAndStartNewTransaction(null);\r
-\r
- Reference sec = ReferenceFactory.newBook();\r
- referenceService.save(sec);\r
-\r
- for (int i = numberOfNew; i < numberOfNew; i++) {\r
- RandomStringUtils.randomAlphabetic(10);\r
- String radomName = RandomStringUtils.randomAlphabetic(5) + " " + RandomStringUtils.randomAlphabetic(10);\r
- String radomCommonName = RandomStringUtils.randomAlphabetic(10);\r
-\r
- IBotanicalName name = TaxonNameFactory.NewBotanicalInstance(Rank.SPECIES());\r
- name.setNameCache(radomName, true);\r
- Taxon taxon = Taxon.NewInstance(name, sec);\r
- taxonService.save(taxon);\r
-\r
- TaxonDescription description = TaxonDescription.NewInstance(taxon);\r
- description.addElement(CommonTaxonName.NewInstance(radomCommonName, Language.GERMAN()));\r
- descriptionService.save(description);\r
- }\r
-\r
- commitAndStartNewTransaction(null);\r
- }\r
-\r
- private <T extends CdmBase> void logFreeTextSearchResults(Pager<SearchResult<T>> pager, Level level, String[] docFields){\r
- if(level == null){\r
- level = Level.DEBUG;\r
- }\r
- if(logger.isEnabledFor(level)){\r
- StringBuilder b = new StringBuilder();\r
- b.append("\n");\r
- int i = 0;\r
- for(SearchResult<?> sr : pager.getRecords()){\r
-\r
- b.append(" ").append(i++).append(" - ");\r
- b.append("score:").append(sr.getScore()).append(", ");\r
-\r
- if(docFields != null){\r
- b.append("docs : ");\r
- for(Document doc : sr.getDocs()) {\r
- b.append("<");\r
- for(String f : docFields){\r
- b.append(f).append(":").append(Arrays.toString(doc.getValues(f)));\r
- }\r
- b.append(">");\r
- }\r
- }\r
-\r
- CdmBase entity = sr.getEntity();\r
- if(entity == null){\r
- b.append("NULL");\r
- } else {\r
- b.append(entity.getClass().getSimpleName()).\r
- append(" [").append(entity.getId()).\r
- append(" | ").append(entity.getUuid()).append("] : ").\r
- append(entity.toString());\r
-\r
- }\r
- b.append("\n");\r
- }\r
- logger.log(level, b);\r
- }\r
- }\r
-\r
-\r
- /**\r
- * @param pager\r
- * @return\r
- */\r
- private Set<UUID> getTaxonUuidSet(@SuppressWarnings("rawtypes") Pager<SearchResult<TaxonBase>> pager) {\r
- Set<UUID> result = new HashSet<>();\r
- for (@SuppressWarnings("rawtypes") SearchResult<TaxonBase> searchResult : pager.getRecords()){\r
- result.add(searchResult.getEntity().getUuid());\r
- }\r
- return result;\r
- }\r
-\r
}\r