package gov.nysenate.openleg.dao.entity.member.search; import gov.nysenate.openleg.dao.base.LimitOffset; import gov.nysenate.openleg.model.entity.SessionMember; import gov.nysenate.openleg.model.search.SearchResults; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.search.sort.SortBuilder; import java.util.Collection; import java.util.List; public interface MemberSearchDao { /** * Performs a free-form search across all members using the query string syntax and a filter. * * @param query String - Query Builder * @param filter FilterBuilder - Filter result set * @param sort String - Sort String * @param limOff LimitOffset - Limit the result set * @return SearchResults<Member> */ public SearchResults<SessionMember> searchMembers(QueryBuilder query, QueryBuilder filter, List<SortBuilder> sort, LimitOffset limOff); /** * Update the Member search index with the supplied Member. * @param member */ public void updateMemberIndex(SessionMember member); /** * Updates the Member search index with the supplied Members. * @param members */ public void updateMemberIndex(Collection<SessionMember> members); /** * Removes the Member from the search index with the given id. * @param member */ public void deleteMemberFromIndex(SessionMember member); }