Search in sources :

Example 11 with SearchMetadataCollection

use of org.opencastproject.matterhorn.search.impl.SearchMetadataCollection in project opencast by opencast.

the class EventIndexUtils method toSearchMetadata.

/**
 * Creates search metadata from a recording event such that the event can be stored in the search index.
 *
 * @param event
 *          the recording event
 * @return the set of metadata
 */
public static SearchMetadataCollection toSearchMetadata(Event event) {
    SearchMetadataCollection metadata = new SearchMetadataCollection(event.getIdentifier().concat(event.getOrganization()), Event.DOCUMENT_TYPE);
    metadata.addField(EventIndexSchema.UID, event.getIdentifier(), true);
    metadata.addField(EventIndexSchema.ORGANIZATION, event.getOrganization(), false);
    metadata.addField(EventIndexSchema.OBJECT, event.toXML(), false);
    if (StringUtils.isNotBlank(event.getTitle()))
        metadata.addField(EventIndexSchema.TITLE, event.getTitle(), true);
    if (StringUtils.isNotBlank(event.getDescription()))
        metadata.addField(EventIndexSchema.DESCRIPTION, event.getDescription(), true);
    if (StringUtils.isNotBlank(event.getLocation()))
        metadata.addField(EventIndexSchema.LOCATION, event.getLocation(), true);
    if (StringUtils.isNotBlank(event.getSeriesId()))
        metadata.addField(EventIndexSchema.SERIES_ID, event.getSeriesId(), true);
    if (StringUtils.isNotBlank(event.getSeriesName()))
        metadata.addField(EventIndexSchema.SERIES_NAME, event.getSeriesName(), true);
    if (StringUtils.isNotBlank(event.getLanguage()))
        metadata.addField(EventIndexSchema.LANGUAGE, event.getLanguage(), true);
    if (StringUtils.isNotBlank(event.getSubject()))
        metadata.addField(EventIndexSchema.SUBJECT, event.getSubject(), true);
    if (StringUtils.isNotBlank(event.getSource()))
        metadata.addField(EventIndexSchema.SOURCE, event.getSource(), true);
    if (StringUtils.isNotBlank(event.getCreated()))
        metadata.addField(EventIndexSchema.CREATED, event.getCreated(), true);
    if (StringUtils.isNotBlank(event.getCreator()))
        metadata.addField(EventIndexSchema.CREATOR, event.getCreator(), true);
    if (StringUtils.isNotBlank(event.getLicense()))
        metadata.addField(EventIndexSchema.LICENSE, event.getLicense(), true);
    if (StringUtils.isNotBlank(event.getRights()))
        metadata.addField(EventIndexSchema.RIGHTS, event.getRights(), true);
    if (StringUtils.isNotBlank(event.getManagedAcl()))
        metadata.addField(EventIndexSchema.MANAGED_ACL, event.getManagedAcl(), true);
    if (StringUtils.isNotBlank(event.getWorkflowState()))
        metadata.addField(EventIndexSchema.WORKFLOW_STATE, event.getWorkflowState(), true);
    if (event.getWorkflowId() != null)
        metadata.addField(EventIndexSchema.WORKFLOW_ID, event.getWorkflowId(), true);
    if (StringUtils.isNotBlank(event.getWorkflowDefinitionId()))
        metadata.addField(EventIndexSchema.WORKFLOW_DEFINITION_ID, event.getWorkflowDefinitionId(), true);
    if (StringUtils.isNotBlank(event.getRecordingStartDate()))
        metadata.addField(EventIndexSchema.START_DATE, event.getRecordingStartDate(), true);
    if (StringUtils.isNotBlank(event.getRecordingEndDate()))
        metadata.addField(EventIndexSchema.END_DATE, event.getRecordingEndDate(), true);
    if (event.getDuration() != null)
        metadata.addField(EventIndexSchema.DURATION, event.getDuration(), true);
    if (StringUtils.isNotBlank(event.getReviewStatus()))
        metadata.addField(EventIndexSchema.REVIEW_STATUS, event.getReviewStatus(), true);
    if (StringUtils.isNotBlank(event.getReviewDate()))
        metadata.addField(EventIndexSchema.REVIEW_DATE, event.getReviewDate(), true);
    if (StringUtils.isNotBlank(event.getWorkflowScheduledDate()))
        metadata.addField(EventIndexSchema.WORKFLOW_SCHEDULED_DATETIME, event.getWorkflowScheduledDate(), true);
    if (event.getArchiveVersion() != null)
        metadata.addField(EventIndexSchema.ARCHIVE_VERSION, event.getArchiveVersion(), true);
    if (event.getOptedOut() != null)
        metadata.addField(EventIndexSchema.OPTED_OUT, event.getOptedOut(), true);
    if (event.getBlacklisted() != null)
        metadata.addField(EventIndexSchema.BLACKLISTED, event.getBlacklisted(), true);
    if (event.getSchedulingStatus() != null)
        metadata.addField(EventIndexSchema.SCHEDULING_STATUS, event.getSchedulingStatus(), true);
    if (event.getRecordingStatus() != null)
        metadata.addField(EventIndexSchema.RECORDING_STATUS, event.getRecordingStatus(), true);
    metadata.addField(EventIndexSchema.EVENT_STATUS, event.getEventStatus(), true);
    metadata.addField(EventIndexSchema.HAS_COMMENTS, event.hasComments(), true);
    metadata.addField(EventIndexSchema.HAS_OPEN_COMMENTS, event.hasOpenComments(), true);
    metadata.addField(EventIndexSchema.NEEDS_CUTTING, event.needsCutting(), true);
    if (event.getPublications() != null) {
        List<Publication> publications = event.getPublications();
        HashMap<String, Object>[] publicationsArray = new HashMap[publications.size()];
        for (int i = 0; i < publications.size(); i++) publicationsArray[i] = generatePublicationDoc(publications.get(i));
        metadata.addField(EventIndexSchema.PUBLICATION, publicationsArray, true);
    }
    if (event.getPresenters() != null) {
        List<String> presenters = event.getPresenters();
        metadata.addField(EventIndexSchema.PRESENTER, presenters.toArray(new String[presenters.size()]), true);
    }
    if (event.getContributors() != null) {
        List<String> contributors = event.getContributors();
        metadata.addField(EventIndexSchema.CONTRIBUTOR, contributors.toArray(new String[contributors.size()]), true);
    }
    if (event.getTrackMimetypes() != null) {
        List<String> trackMimetypes = event.getTrackMimetypes();
        metadata.addField(EventIndexSchema.TRACK_MIMETYPE, trackMimetypes.toArray(new String[trackMimetypes.size()]), true);
    }
    if (event.getTrackStreamResolution() != null) {
        List<String> trackStreamResolutions = event.getTrackStreamResolution();
        metadata.addField(EventIndexSchema.TRACK_STREAM_RESOLUTION, trackStreamResolutions.toArray(new String[trackStreamResolutions.size()]), true);
    }
    if (event.getTrackFlavors() != null) {
        List<String> trackFlavors = event.getTrackFlavors();
        metadata.addField(EventIndexSchema.TRACK_FLAVOR, trackFlavors.toArray(new String[trackFlavors.size()]), true);
    }
    if (event.getMetadataFlavors() != null) {
        List<String> metadataFlavors = event.getMetadataFlavors();
        metadata.addField(EventIndexSchema.METADATA_FLAVOR, metadataFlavors.toArray(new String[metadataFlavors.size()]), true);
    }
    if (event.getMetadataMimetypes() != null) {
        List<String> metadataMimetypes = event.getMetadataMimetypes();
        metadata.addField(EventIndexSchema.METADATA_MIMETYPE, metadataMimetypes.toArray(new String[metadataMimetypes.size()]), true);
    }
    if (event.getAttachmentFlavors() != null) {
        List<String> attachmentFlavors = event.getAttachmentFlavors();
        metadata.addField(EventIndexSchema.ATTACHMENT_FLAVOR, attachmentFlavors.toArray(new String[attachmentFlavors.size()]), true);
    }
    if (StringUtils.isNotBlank(event.getAccessPolicy())) {
        metadata.addField(EventIndexSchema.ACCESS_POLICY, event.getAccessPolicy(), true);
        addAuthorization(metadata, event.getAccessPolicy());
    }
    if (StringUtils.isNotBlank(event.getAgentId())) {
        metadata.addField(EventIndexSchema.AGENT_ID, event.getAgentId(), true);
    }
    if (StringUtils.isNotBlank(event.getTechnicalStartTime())) {
        metadata.addField(EventIndexSchema.TECHNICAL_START, event.getTechnicalStartTime(), true);
    }
    if (StringUtils.isNotBlank(event.getTechnicalEndTime())) {
        metadata.addField(EventIndexSchema.TECHNICAL_END, event.getTechnicalEndTime(), true);
    }
    if (event.getTechnicalPresenters() != null) {
        metadata.addField(EventIndexSchema.TECHNICAL_PRESENTERS, event.getTechnicalPresenters().toArray(new String[event.getTechnicalPresenters().size()]), true);
    }
    if (event.getAgentConfiguration() != null) {
        metadata.addField(EventIndexSchema.AGENT_CONFIGURATION, event.getAgentConfiguration(), false);
    }
    return metadata;
}
Also used : SearchMetadataCollection(org.opencastproject.matterhorn.search.impl.SearchMetadataCollection) HashMap(java.util.HashMap) Publication(org.opencastproject.mediapackage.Publication)

Example 12 with SearchMetadataCollection

use of org.opencastproject.matterhorn.search.impl.SearchMetadataCollection in project opencast by opencast.

the class GroupIndexUtils method toSearchMetadata.

/**
 * Creates search metadata from a group such that the group can be stored in the search index.
 *
 * @param group
 *          the group
 * @return the set of metadata
 */
public static SearchMetadataCollection toSearchMetadata(Group group) {
    SearchMetadataCollection metadata = new SearchMetadataCollection(group.getIdentifier().concat(group.getOrganization()), Group.DOCUMENT_TYPE);
    metadata.addField(GroupIndexSchema.UID, group.getIdentifier(), true);
    metadata.addField(GroupIndexSchema.ORGANIZATION, group.getOrganization(), false);
    metadata.addField(GroupIndexSchema.OBJECT, group.toXML(), false);
    metadata.addField(GroupIndexSchema.ROLE, group.getRole(), true);
    if (StringUtils.isNotBlank(group.getDescription())) {
        metadata.addField(GroupIndexSchema.DESCRIPTION, group.getDescription(), true);
    }
    if (StringUtils.isNotBlank(group.getName())) {
        metadata.addField(GroupIndexSchema.NAME, group.getName(), true);
    }
    if (group.getRoles() != null) {
        metadata.addField(GroupIndexSchema.ROLES, group.getRoles().toArray(), true);
    }
    if (group.getMembers() != null) {
        metadata.addField(GroupIndexSchema.MEMBERS, group.getMembers().toArray(), true);
    }
    return metadata;
}
Also used : SearchMetadataCollection(org.opencastproject.matterhorn.search.impl.SearchMetadataCollection)

Example 13 with SearchMetadataCollection

use of org.opencastproject.matterhorn.search.impl.SearchMetadataCollection in project opencast by opencast.

the class ThemeIndexUtils method toSearchMetadata.

/**
 * Creates search metadata from a theme such that the theme can be stored in the search index.
 *
 * @param theme
 *          the theme
 * @return the set of metadata
 */
public static SearchMetadataCollection toSearchMetadata(Theme theme) {
    SearchMetadataCollection metadata = new SearchMetadataCollection(Long.toString(theme.getIdentifier()).concat(theme.getOrganization()), Theme.DOCUMENT_TYPE);
    // Mandatory fields
    metadata.addField(ThemeIndexSchema.UID, theme.getIdentifier(), true);
    metadata.addField(ThemeIndexSchema.ORGANIZATION, theme.getOrganization(), false);
    metadata.addField(ThemeIndexSchema.OBJECT, theme.toXML(), false);
    // Optional fields
    if (StringUtils.isNotBlank(theme.getName())) {
        metadata.addField(ThemeIndexSchema.NAME, theme.getName(), true);
    }
    if (StringUtils.isNotBlank(theme.getDescription())) {
        metadata.addField(ThemeIndexSchema.DESCRIPTION, theme.getDescription(), true);
    }
    metadata.addField(ThemeIndexSchema.DEFAULT, theme.isDefault(), false);
    if (theme.getCreationDate() != null) {
        metadata.addField(ThemeIndexSchema.CREATION_DATE, theme.getCreationDate(), true);
    }
    if (StringUtils.isNotBlank(theme.getCreator())) {
        metadata.addField(ThemeIndexSchema.CREATOR, theme.getCreator(), true);
    }
    metadata.addField(ThemeIndexSchema.BUMPER_ACTIVE, theme.isBumperActive(), false);
    if (StringUtils.isNotBlank(theme.getBumperFile())) {
        metadata.addField(ThemeIndexSchema.BUMPER_FILE, theme.getBumperFile(), false);
    }
    metadata.addField(ThemeIndexSchema.TRAILER_ACTIVE, theme.isTrailerActive(), false);
    if (StringUtils.isNotBlank(theme.getTrailerFile())) {
        metadata.addField(ThemeIndexSchema.TRAILER_FILE, theme.getTrailerFile(), false);
    }
    metadata.addField(ThemeIndexSchema.TITLE_SLIDE_ACTIVE, theme.isTrailerActive(), false);
    if (StringUtils.isNotBlank(theme.getTitleSlideMetadata())) {
        metadata.addField(ThemeIndexSchema.TITLE_SLIDE_METADATA, theme.getTitleSlideMetadata(), false);
    }
    if (StringUtils.isNotBlank(theme.getTitleSlideBackground())) {
        metadata.addField(ThemeIndexSchema.TITLE_SLIDE_BACKGROUND, theme.getTitleSlideBackground(), false);
    }
    metadata.addField(ThemeIndexSchema.LICENSE_SLIDE_ACTIVE, theme.isLicenseSlideActive(), false);
    if (StringUtils.isNotBlank(theme.getLicenseSlideDescription())) {
        metadata.addField(ThemeIndexSchema.LICENSE_SLIDE_DESCRIPTION, theme.getLicenseSlideDescription(), false);
    }
    if (StringUtils.isNotBlank(theme.getLicenseSlideBackground())) {
        metadata.addField(ThemeIndexSchema.LICENSE_SLIDE_BACKGROUND, theme.getLicenseSlideBackground(), false);
    }
    metadata.addField(ThemeIndexSchema.WATERMARK_ACTIVE, theme.isWatermarkActive(), false);
    if (StringUtils.isNotBlank(theme.getWatermarkFile())) {
        metadata.addField(ThemeIndexSchema.WATERMARK_FILE, theme.getWatermarkFile(), false);
    }
    if (StringUtils.isNotBlank(theme.getWatermarkPosition())) {
        metadata.addField(ThemeIndexSchema.WATERMARK_POSITION, theme.getWatermarkPosition(), false);
    }
    return metadata;
}
Also used : SearchMetadataCollection(org.opencastproject.matterhorn.search.impl.SearchMetadataCollection)

Aggregations

SearchMetadataCollection (org.opencastproject.matterhorn.search.impl.SearchMetadataCollection)13 SearchIndexException (org.opencastproject.matterhorn.search.SearchIndexException)9 IOException (java.io.IOException)4 SearchRequestBuilder (org.elasticsearch.action.search.SearchRequestBuilder)4 SearchMetadata (org.opencastproject.matterhorn.search.SearchMetadata)4 ElasticsearchDocument (org.opencastproject.matterhorn.search.impl.ElasticsearchDocument)4 HashMap (java.util.HashMap)1 SearchResponse (org.elasticsearch.action.search.SearchResponse)1 SearchHit (org.elasticsearch.search.SearchHit)1 SearchHitField (org.elasticsearch.search.SearchHitField)1 Event (org.opencastproject.index.service.impl.index.event.Event)1 EventQueryBuilder (org.opencastproject.index.service.impl.index.event.EventQueryBuilder)1 Group (org.opencastproject.index.service.impl.index.group.Group)1 GroupQueryBuilder (org.opencastproject.index.service.impl.index.group.GroupQueryBuilder)1 Series (org.opencastproject.index.service.impl.index.series.Series)1 SeriesQueryBuilder (org.opencastproject.index.service.impl.index.series.SeriesQueryBuilder)1 Theme (org.opencastproject.index.service.impl.index.theme.Theme)1 ThemeQueryBuilder (org.opencastproject.index.service.impl.index.theme.ThemeQueryBuilder)1 SearchMetadataImpl (org.opencastproject.matterhorn.search.impl.SearchMetadataImpl)1 SearchResultImpl (org.opencastproject.matterhorn.search.impl.SearchResultImpl)1