package gov.nysenate.openleg.dao.hearing.search; import gov.nysenate.openleg.dao.base.LimitOffset; import gov.nysenate.openleg.model.hearing.PublicHearing; import gov.nysenate.openleg.model.hearing.PublicHearingId; 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; /** * DAO interface for searching public hearings. */ public interface PublicHearingSearchDao { /** * Performs a free-form search across all public hearings 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<BillId> */ public SearchResults<PublicHearingId> searchPublicHearings(QueryBuilder query, QueryBuilder filter, List<SortBuilder> sort, LimitOffset limOff); /** * Updates the public hearing search index with the supplied public hearing. * @param publicHearing */ public void updatePublicHearingIndex(PublicHearing publicHearing); /** * Updates the public hearing search index with the supplied public hearings. * @param publicHearings */ public void updatePublicHearingIndex(Collection<PublicHearing> publicHearings); /** * Removes the public hearing from the search index with the given id. * @param publicHearingId */ public void deletePublicHearingFromIndex(PublicHearingId publicHearingId); }