+ * performes a union searches for TaxonBase instances on all available
+ * free text indexes. At the time of writing this documentation it combines
+ * {@link #findByDescriptionElementFullText(Class, String, Classification, List, List, boolean, Integer, Integer, List, List)}
+ * and {@link #findByFullText(Class, String, Classification, List, boolean, Integer, Integer, List, List)
+ *
+ * @param queryString
+ * the query string
+ * @param classification
+ * Additional filter criterion: If a taxonomic classification
+ * three is specified here the result set will only contain taxa
+ * of the given classification
+ * @param languages
+ * Additional filter criterion: Search only in these languages.
+ * Not all text fields in the cdm model are multilingual, thus
+ * this setting will only apply to the multilingiual fields.
+ * Other fields are searched nevertheless if this parameter is
+ * set or not.
+ * @param highlightFragments
+ * TODO
+ * @param pageSize
+ * The maximum number of objects returned (can be null for all
+ * objects)
+ * @param pageNumber
+ * The offset (in pageSize chunks) from the start of the result
+ * set (0 - based)
+ * @param orderHints
+ * Supports path like <code>orderHints.propertyNames</code> which
+ * include *-to-one properties like createdBy.username or
+ * authorTeam.persistentTitleCache
+ * @param propertyPaths
+ * properties to initialize - see
+ * {@link IBeanInitializer#initialize(Object, List)}
+ * @return a paged list of instances of type T matching the queryString and
+ * the additional filter criteria
+ * @return
+ * @throws CorruptIndexException
+ * @throws IOException
+ * @throws ParseException
+ * @throws LuceneMultiSearchException
+ * @deprecated this search should fully be covered by the new method
+ * {@link #findTaxaAndNamesByFullText(EnumSet, String, Classification, Set, List, boolean, Integer, Integer, List, List)}
+ * , maybe we should rename this latter method to give it a more meaningful name
+ */
+ @Deprecated
+ 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, LuceneMultiSearchException;
+
+ /**
+ * Searches for TaxonBase instances using the TaxonBase free text index.
+ *
+ * <h4>This is an experimental feature, it may be moved, modified, or even
+ * removed in future releases!!!</h4>
+ *
+ * @param clazz
+ * Additional filter criterion: The specific TaxonBase subclass
+ * to search for
+ * @param queryString
+ * the query string
+ * @param classification
+ * Additional filter criterion: If a taxonomic classification
+ * three is specified here the result set will only contain taxa
+ * of the given classification
+ * @param languages
+ * Additional filter criterion: Search only in these languages.
+ * Not all text fields in the cdm model are multilingual, thus
+ * this setting will only apply to the multilingiual fields.
+ * Other fields are searched nevertheless if this parameter is
+ * set or not.
+ * @param highlightFragments
+ * TODO
+ * @param pageSize
+ * The maximum number of objects returned (can be null for all
+ * objects)
+ * @param pageNumber
+ * The offset (in pageSize chunks) from the start of the result
+ * set (0 - based)
+ * @param orderHints
+ * Supports path like <code>orderHints.propertyNames</code> which
+ * include *-to-one properties like createdBy.username or
+ * authorTeam.persistentTitleCache
+ * @param propertyPaths
+ * properties to initialize - see
+ * {@link IBeanInitializer#initialize(Object, List)}
+ * @return a paged list of instances of type T matching the queryString and
+ * the additional filter criteria
+ * @throws CorruptIndexException
+ * @throws IOException
+ * @throws ParseException
+ */
+ public Pager<SearchResult<TaxonBase>> findByFullText(Class<? extends TaxonBase> clazz, String queryString, Classification classification,
+ List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints,
+ List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException;
+
+
+ /**
+ * @param areaFilter
+ * @param statusFilter
+ * @param classification
+ * Additional filter criterion: If a taxonomic classification
+ * three is specified here the result set will only contain taxa
+ * of the given classification
+ * @param highlightFragments
+ * @param pageSize
+ * The maximum number of objects returned (can be null for all
+ * objects)
+ * @param pageNumber
+ * The offset (in pageSize chunks) from the start of the result
+ * set (0 - based)
+ * @param orderHints
+ * Supports path like <code>orderHints.propertyNames</code> which
+ * include *-to-one properties like createdBy.username or
+ * authorTeam.persistentTitleCache
+ * @param propertyPath
+ * Common properties to initialize the instances of the
+ * CDM types ({@link Taxon} and {@link Synonym}
+ * this method can return - see {@link IBeanInitializer#initialize(Object, List)}
+ * @return a paged list of instances of {@link Taxon} instances
+ * @throws IOException
+ * @throws ParseException
+ */
+ public Pager<SearchResult<TaxonBase>> findByDistribution(List<NamedArea> areaFilter, List<PresenceAbsenceTermBase<?>> statusFilter,
+ Classification classification,
+ Integer pageSize, Integer pageNumber,
+ List<OrderHint> orderHints, List<String> propertyPaths) throws IOException, ParseException;
+
+ /**
+ * Searches for TaxonBase instances using the TaxonBase free text index.
+ *
+ *
+ *
+ * <h4>This is an experimental feature, it may be moved, modified, or even
+ * removed in future releases!!!</h4>
+ * @param searchModes
+ * Additional filter criterion: defaults to [doTaxa] if set null
+ * @param queryString
+ * the query string
+ * @param classification
+ * Additional filter criterion: If a taxonomic classification
+ * three is specified here the result set will only contain taxa
+ * of the given classification
+ * @param namedAreas
+ * @param languages
+ * Additional filter criterion: Search only in these languages.
+ * Not all text fields in the cdm model are multilingual, thus
+ * this setting will only apply to the multilingiual fields.
+ * Other fields are searched nevertheless if this parameter is
+ * set or not.
+ * @param highlightFragments
+ * TODO
+ * @param pageSize
+ * The maximum number of objects returned (can be null for all
+ * objects)
+ * @param pageNumber
+ * The offset (in pageSize chunks) from the start of the result
+ * set (0 - based)
+ * @param orderHints
+ * Supports path like <code>orderHints.propertyNames</code> which
+ * include *-to-one properties like createdBy.username or
+ * authorTeam.persistentTitleCache
+ * @param propertyPath
+ * Common properties to initialize the instances of the
+ * CDM types ({@link Taxon} and {@link Synonym}
+ * this method can return - see {@link IBeanInitializer#initialize(Object, List)}
+ * @return a paged list of instances of {@link Taxon}, {@link Synonym}, matching the queryString and
+ * the additional filter criteria
+ * @throws CorruptIndexException
+ * @throws IOException
+ * @throws ParseException
+ * @throws LuceneMultiSearchException
+ */
+ public Pager<SearchResult<TaxonBase>> findTaxaAndNamesByFullText(
+ EnumSet<TaxaAndNamesSearchMode> searchModes,
+ String queryString, Classification classification, Set<NamedArea> namedAreas, Set<PresenceAbsenceTermBase<?>> distributionStatus,
+ List<Language> languages, boolean highlightFragments, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints,
+ List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException, LuceneMultiSearchException;
+
+ /**
+ * Searches for TaxonBase instances by using the DescriptionElement free text index.
+ *