Interface Search
- All Known Implementing Classes:
MockSearch
public interface Search
The core search interface. Does indexing and searching for all domain objects.
- Author:
- Alex Bogdanovski [[email protected]]
-
Method Summary
Modifier and TypeMethodDescriptiondefault voidcreateIndex(App app) Creates a new search index for the given app.default voiddeleteIndex(App app) Deletes the search index for a given app.<P extends ParaObject>
PSimple id search.<P extends ParaObject>
PSimple id search.<P extends ParaObject>
List<P> Simple multi id search.<P extends ParaObject>
List<P> Simple multi id search.<P extends ParaObject>
List<P> findNearby(String type, String query, int radius, double lat, double lng, Pager... pager) Search forAddressobjects in a radius of X km from a given point.<P extends ParaObject>
List<P> findNearby(String appid, String type, String query, int radius, double lat, double lng, Pager... pager) Search forAddressobjects in a radius of X km from a given point.<P extends ParaObject>
List<P> findNestedQuery(String type, String field, String query, Pager... pager) Searches within a nested field.<P extends ParaObject>
List<P> Searches within a nested field.<P extends ParaObject>
List<P> findPrefix(String type, String field, String prefix, Pager... pager) Searches for objects that have a property which value starts with a given prefix.<P extends ParaObject>
List<P> Searches for objects that have a property which value starts with a given prefix.<P extends ParaObject>
List<P> Query string search.<P extends ParaObject>
List<P> Query string search.<P extends ParaObject>
List<P> Searches for objects that have similar property values to a given text.<P extends ParaObject>
List<P> findSimilar(String appid, String type, String filterKey, String[] fields, String liketext, Pager... pager) Searches for objects that have similar property values to a given text.<P extends ParaObject>
List<P> findTagged(String type, String[] tags, Pager... pager) Searches for objects tagged with one or more tags.<P extends ParaObject>
List<P> findTagged(String appid, String type, String[] tags, Pager... pager) Searches for objects tagged with one or more tags.<P extends ParaObject>
List<P> Searches forTagobjects.<P extends ParaObject>
List<P> Searches forTagobjects.<P extends ParaObject>
List<P> Searches for objects having a property value that is in list of possible values.<P extends ParaObject>
List<P> findTermInList(String type, String field, List<?> terms, Pager... pager) Searches for objects having a property value that is in list of possible values.<P extends ParaObject>
List<P> Searches for objects that have properties matching some given values.<P extends ParaObject>
List<P> Searches for objects that have properties matching some given values.<P extends ParaObject>
List<P> findWildcard(String type, String field, String wildcard, Pager... pager) Searches for objects that have a property with a value matching a wildcard query.<P extends ParaObject>
List<P> Searches for objects that have a property with a value matching a wildcard query.Counts indexed objects.Counts indexed objects.Counts indexed objects matching a set of terms/values.Counts indexed objects matching a set of terms/values.voidindex(ParaObject po) Indexes an object.voidindex(String appid, ParaObject po) Indexes an object.<P extends ParaObject>
voidIndexes multiple objects in a batch operation.<P extends ParaObject>
voidIndexes multiple objects in a batch operation.booleanisValidQueryString(String queryString) Validates a query string.booleanrebuildIndex(DAO dao, App app, Pager... pager) Reads all objects from the database and indexes them into a new index.booleanrebuildIndex(DAO dao, App app, String destinationIndex, Pager... pager) Reads all objects from the database and indexes them into a new index.voidunindex(ParaObject po) Removes an object from the index.voidunindex(String appid, ParaObject po) Removes an object from the index.<P extends ParaObject>
voidunindexAll(String appid, List<P> objects) Removes multiple objects from the index in a batch operation.voidunindexAll(String appid, Map<String, ?> terms, boolean matchAll) Removes multiple objects from the index matching a set of terms.<P extends ParaObject>
voidunindexAll(List<P> objects) Removes multiple objects from the index in a batch operation.voidunindexAll(Map<String, ?> terms, boolean matchAll) Removes multiple objects from the index matching a set of terms.
-
Method Details
-
index
Indexes an object. Only fields marked withStoredare indexed.- Parameters:
po- the domain object the object to index
-
index
-
unindex
-
unindex
Removes an object from the index.- Parameters:
appid- name of theApppo- the domain object
-
indexAll
Indexes multiple objects in a batch operation.- Type Parameters:
P- type of the object- Parameters:
objects- a list of objects
-
indexAll
Indexes multiple objects in a batch operation.- Type Parameters:
P- type of the object- Parameters:
appid- name of theAppobjects- a list of objects
-
unindexAll
Removes multiple objects from the index in a batch operation.- Type Parameters:
P- type of the object- Parameters:
objects- a list of objects
-
unindexAll
Removes multiple objects from the index in a batch operation.- Type Parameters:
P- type of the object- Parameters:
appid- name of theAppobjects- a list of objects
-
unindexAll
-
unindexAll
Removes multiple objects from the index matching a set of terms. If the terms parameter is empty or null, all objects should be removed from index.- Parameters:
appid- name of theAppterms- a list of termsmatchAll- if true all terms must match ('AND' operation)
-
findById
Simple id search.- Type Parameters:
P- type of the object- Parameters:
id- the id- Returns:
- the object if found or null
-
findById
Simple id search.- Type Parameters:
P- type of the object- Parameters:
appid- name of theAppid- the id- Returns:
- the object if found or null
-
findByIds
Simple multi id search.- Type Parameters:
P- type of the object- Parameters:
ids- a list of ids to search for- Returns:
- the object if found or null
-
findByIds
-
findNearby
<P extends ParaObject> List<P> findNearby(String type, String query, int radius, double lat, double lng, Pager... pager) Search forAddressobjects in a radius of X km from a given point.- Type Parameters:
P- type of the object- Parameters:
type- the type of object to search for. SeeParaObject.getType()query- the query stringradius- the radius of the search circlelat- latitudelng- longitudepager- aPager- Returns:
- a list of objects found
-
findNearby
<P extends ParaObject> List<P> findNearby(String appid, String type, String query, int radius, double lat, double lng, Pager... pager) Search forAddressobjects in a radius of X km from a given point.- Type Parameters:
P- type of the object- Parameters:
appid- name of theApptype- the type of object to search for. SeeParaObject.getType()query- the query stringradius- the radius of the search circlelat- latitudelng- longitudepager- aPager- Returns:
- a list of objects found
-
findPrefix
Searches for objects that have a property which value starts with a given prefix.- Type Parameters:
P- type of the object- Parameters:
type- the type of object to search for. SeeParaObject.getType()field- the property name of an objectprefix- the prefixpager- aPager- Returns:
- a list of objects found
-
findPrefix
<P extends ParaObject> List<P> findPrefix(String appid, String type, String field, String prefix, Pager... pager) Searches for objects that have a property which value starts with a given prefix.- Type Parameters:
P- type of the object- Parameters:
appid- name of theApptype- the type of object to search for. SeeParaObject.getType()field- the property name of an objectprefix- the prefixpager- aPager- Returns:
- a list of objects found
-
findQuery
Query string search. This is the basic search method. Refer to the Lucene query string syntax.- Type Parameters:
P- type of the object- Parameters:
type- the type of object to search for. SeeParaObject.getType()query- the query stringpager- aPager- Returns:
- a list of objects found
-
findQuery
Query string search. This is the basic search method. Refer to the Lucene query string syntax.- Type Parameters:
P- type of the object- Parameters:
appid- name of theApptype- the type of object to search for. SeeParaObject.getType()query- the query stringpager- aPager- Returns:
- a list of objects found
-
findNestedQuery
<P extends ParaObject> List<P> findNestedQuery(String type, String field, String query, Pager... pager) Searches within a nested field. The objects of the given type must contain a nested field "nstd".- Type Parameters:
P- type of the object- Parameters:
type- the type of object to search for. SeeParaObject.getType()field- the name of the field to target (within a nested field "nstd")query- query stringpager- aPager- Returns:
- list of objects found
-
findNestedQuery
<P extends ParaObject> List<P> findNestedQuery(String appid, String type, String field, String query, Pager... pager) Searches within a nested field. The objects of the given type must contain a nested field "nstd".- Type Parameters:
P- type of the object- Parameters:
appid- name of theApptype- the type of object to search for. SeeParaObject.getType()field- the name of the field to target (within a nested field "nstd")query- query stringpager- aPager- Returns:
- list of objects found
-
findSimilar
<P extends ParaObject> List<P> findSimilar(String type, String filterKey, String[] fields, String liketext, Pager... pager) Searches for objects that have similar property values to a given text. A "find like this" query.- Type Parameters:
P- type of the object- Parameters:
type- the type of object to search for. SeeParaObject.getType()filterKey- exclude an object with this key from the results (optional)fields- a list of property namesliketext- text to compare topager- aPager- Returns:
- a list of objects found
-
findSimilar
<P extends ParaObject> List<P> findSimilar(String appid, String type, String filterKey, String[] fields, String liketext, Pager... pager) Searches for objects that have similar property values to a given text. A "find like this" query.- Type Parameters:
P- type of the object- Parameters:
appid- name of theApptype- the type of object to search for. SeeParaObject.getType()filterKey- exclude an object with this key from the results (optional)fields- a list of property namesliketext- text to compare topager- aPager- Returns:
- a list of objects found
-
findTagged
Searches for objects tagged with one or more tags.- Type Parameters:
P- type of the object- Parameters:
type- the type of object to search for. SeeParaObject.getType()tags- the list of tagspager- aPager- Returns:
- a list of objects found
-
findTagged
Searches for objects tagged with one or more tags.- Type Parameters:
P- type of the object- Parameters:
appid- name of theApptype- the type of object to search for. SeeParaObject.getType()tags- the list of tagspager- aPager- Returns:
- a list of objects found
-
findTags
-
findTags
Searches forTagobjects. This method might be deprecated in the future. -
findTermInList
<P extends ParaObject> List<P> findTermInList(String type, String field, List<?> terms, Pager... pager) Searches for objects having a property value that is in list of possible values.- Type Parameters:
P- type of the object- Parameters:
type- the type of object to search for. SeeParaObject.getType()field- the property name of an objectterms- a list of terms (property values)pager- aPager- Returns:
- a list of objects found
-
findTermInList
<P extends ParaObject> List<P> findTermInList(String appid, String type, String field, List<?> terms, Pager... pager) Searches for objects having a property value that is in list of possible values.- Type Parameters:
P- type of the object- Parameters:
appid- name of theApptype- the type of object to search for. SeeParaObject.getType()field- the property name of an objectterms- a list of terms (property values)pager- aPager- Returns:
- a list of objects found
-
findTerms
<P extends ParaObject> List<P> findTerms(String type, Map<String, ?> terms, boolean matchAll, Pager... pager) Searches for objects that have properties matching some given values. A terms query.- Type Parameters:
P- type of the object- Parameters:
type- the type of object to search for. SeeParaObject.getType()terms- a map of fields (property names) to terms (property values)matchAll- match all terms. If true - AND search, if false - OR searchpager- aPager- Returns:
- a list of objects found
-
findTerms
<P extends ParaObject> List<P> findTerms(String appid, String type, Map<String, ?> terms, boolean matchAll, Pager... pager) Searches for objects that have properties matching some given values. A terms query.- Type Parameters:
P- type of the object- Parameters:
appid- name of theApptype- the type of object to search for. SeeParaObject.getType()terms- a map of fields (property names) to terms (property values)matchAll- match all terms. If true - AND search, if false - OR searchpager- aPager- Returns:
- a list of objects found
-
findWildcard
<P extends ParaObject> List<P> findWildcard(String type, String field, String wildcard, Pager... pager) Searches for objects that have a property with a value matching a wildcard query.- Type Parameters:
P- type of the object- Parameters:
type- the type of object to search for. SeeParaObject.getType()field- the property name of an objectwildcard- wildcard query string. For example "cat*".pager- aPager- Returns:
- a list of objects found
-
findWildcard
<P extends ParaObject> List<P> findWildcard(String appid, String type, String field, String wildcard, Pager... pager) Searches for objects that have a property with a value matching a wildcard query.- Type Parameters:
P- type of the object- Parameters:
appid- name of theApptype- the type of object to search for. SeeParaObject.getType()field- the property name of an objectwildcard- wildcard query string. For example "cat*".pager- aPager- Returns:
- a list of objects found
-
getCount
Counts indexed objects.- Parameters:
type- the type of object to search for. SeeParaObject.getType()- Returns:
- the number of results found
-
getCount
Counts indexed objects.- Parameters:
appid- name of theApptype- the type of object to search for. SeeParaObject.getType()- Returns:
- the number of results found
-
getCount
Counts indexed objects matching a set of terms/values.- Parameters:
type- the type of object to search for. SeeParaObject.getType()terms- a list of terms (property values)- Returns:
- the number of results found
-
getCount
Counts indexed objects matching a set of terms/values.- Parameters:
appid- name of theApptype- the type of object to search for. SeeParaObject.getType()terms- a map of fields (property names) to terms (property values)- Returns:
- the number of results found
-
rebuildIndex
-
rebuildIndex
Reads all objects from the database and indexes them into a new index. Old index is usually deleted. -
isValidQueryString
Validates a query string.- Parameters:
queryString- a query string- Returns:
- true if query is valid
-
createIndex
-
deleteIndex
-