package gov.nysenate.openleg.dao.transcript.search; import gov.nysenate.openleg.dao.base.LimitOffset; import gov.nysenate.openleg.model.search.SearchResults; import gov.nysenate.openleg.model.transcript.Transcript; import gov.nysenate.openleg.model.transcript.TranscriptId; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.search.sort.SortBuilder; import java.util.Collection; import java.util.List; /** * DAO interface for searching session transcripts. */ public interface TranscriptSearchDao { /** * Performs a free-form search across all transcripts 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<TranscriptId> searchTranscripts(QueryBuilder query, QueryBuilder filter, List<SortBuilder> sort, LimitOffset limOff); /** * Update the transcript search index with the supplied transcript. * @param transcript */ public void updateTranscriptIndex(Transcript transcript); /** * Updates the transcript search index with the supplied transcripts. * @param transcripts */ public void updateTranscriptIndex(Collection<Transcript> transcripts); /** * Removes the transcript from the search index with the given id. * * @param transcriptId */ public void deleteTranscriptFromIndex(TranscriptId transcriptId); }