package org.aplikator.server.persistence.search; import org.aplikator.client.shared.data.PrimaryKey; import org.aplikator.client.shared.data.SearchResult; import org.aplikator.client.shared.descriptor.EntityDTO; import org.aplikator.server.data.Context; import org.aplikator.server.data.Record; /** * @author eskymo * <p/> * Search interface for providing search services to aplikator */ public interface Search { public static final String SEARCH_ENABLED = "aplikator.searchEnabled"; public static final String SEARCH_ENGINE = "aplikator.searchEngine"; /** * getPagefromSearch - searches the records in searchengine and returns a * list of Records based on the view supplied - used for a search inside an * entity * * @param vd * @param searchArgument * @param pageOffset * @param pageSize * @param ctx * @return */ public SearchResult getPagefromSearch(String vdId, String searchArgument, int pageOffset, int pageSize, Context ctx); /** * getPagefromSearch - searches the records in searchengine and returns a * list of record based on the default view in the entity - used for generic * search accross all entities/types * * @param searchArgument * @param pageOffset * @param pageSize * @param ctx * @return */ public SearchResult getPagefromSearch(String searchArgument, int pageOffset, int pageSize, Context ctx); /** * index - puts the record into the index into the search engine * * @param indexName * @param record */ public void index(Record record); /** * index - puts all records from the entity into the search engine * * @param indexName * @param entityDTO */ public void index(EntityDTO entityDTO); /** * search - searches the search engine for records matching the * searchArgument and type (entity) - records are in non-localized form and * without any triggers * * @param searchArgument * @param type * @param offset * @param size * @return */ public SearchResult search(String searchArgument, String type, int offset, int size); /** * finishes the work with search */ public void finish(); /** * search - searches the search engine for all records matching the * searchArgument accross all types - records are in non-localized form and * without any triggers * * @param searchArgument * @param offset * @param size * @return */ public SearchResult search(String searchArgument, int offset, int size); /** * update method for updating a record in index with given primaryKey * * @param primaryKey */ public void update(PrimaryKey primaryKey, Context ctx); /** * insert method for inserting a record into an index * * @param primaryKey */ public void insert(PrimaryKey primaryKey, Context ctx); /** * delete method for removing record from index * * @param primaryKey */ public void delete(PrimaryKey primaryKey); }