Search in sources :

Example 11 with Pair

use of com.thinkbiganalytics.search.rest.model.Pair in project kylo by Teradata.

the class ElasticSearchSearchResultTransform method getFeedMetadataSearchResultData.

private FeedMetadataSearchResultData getFeedMetadataSearchResultData(SearchHit searchHit) {
    // jcr has no notion of null-valued property. So, account for the situation when there is no tag present.
    final String TBA_SYSTEM_NAME = "tba:systemName";
    final String JCR_TITLE = "jcr:title";
    final String JCR_DESCRIPTION = "jcr:description";
    final String TBA_CATEGORY = "tba:category";
    final String TBA_TAGS = "tba:tags";
    final String TBA_SYSTEM_NAME_NEW_DESCRIPTION = "System name (Kylo)";
    final String JCR_TITLE_NEW_DESCRIPTION = "Title";
    final String JCR_DESCRIPTION_NEW_DESCRIPTION = "Description";
    final String TBA_CATEGORY_NEW_DESCRIPTION = "Category";
    final String TBA_TAGS_NEW_DESCRIPTION = "Tags";
    final String SPACE_STRING = " ";
    Map<String, Object> searchHitSourceMap = searchHit.sourceAsMap();
    FeedMetadataSearchResultData feedMetadataSearchResultData = new FeedMetadataSearchResultData();
    List<Pair> highlightsList = new ArrayList<>();
    if (searchHitSourceMap.containsKey(TBA_SYSTEM_NAME)) {
        feedMetadataSearchResultData.setFeedSystemName(searchHitSourceMap.get(TBA_SYSTEM_NAME).toString());
    }
    if (searchHitSourceMap.containsKey(JCR_TITLE)) {
        feedMetadataSearchResultData.setFeedTitle(searchHitSourceMap.get(JCR_TITLE).toString());
    }
    if (searchHitSourceMap.containsKey(JCR_DESCRIPTION)) {
        feedMetadataSearchResultData.setFeedDescription(searchHitSourceMap.get(JCR_DESCRIPTION).toString());
    }
    if (searchHitSourceMap.containsKey(TBA_CATEGORY)) {
        feedMetadataSearchResultData.setFeedCategoryId(searchHitSourceMap.get(TBA_CATEGORY).toString());
    }
    if (searchHitSourceMap.containsKey(TBA_TAGS)) {
        feedMetadataSearchResultData.setFeedTags(Arrays.asList(searchHitSourceMap.get(TBA_TAGS).toString().split(SPACE_STRING)));
    }
    Map<String, HighlightField> highlights = searchHit.getHighlightFields();
    for (Map.Entry<String, HighlightField> entry : highlights.entrySet()) {
        String key = entry.getKey();
        Boolean includeHighlight = false;
        switch(key) {
            case JCR_TITLE:
                key = JCR_TITLE_NEW_DESCRIPTION;
                includeHighlight = true;
                break;
            case JCR_DESCRIPTION:
                key = JCR_DESCRIPTION_NEW_DESCRIPTION;
                includeHighlight = true;
                break;
            case TBA_TAGS:
                key = TBA_TAGS_NEW_DESCRIPTION;
                includeHighlight = true;
                break;
            case TBA_CATEGORY:
                key = TBA_CATEGORY_NEW_DESCRIPTION;
                includeHighlight = true;
                break;
            case TBA_SYSTEM_NAME:
                key = TBA_SYSTEM_NAME_NEW_DESCRIPTION;
                includeHighlight = true;
                break;
        }
        if (includeHighlight && entry.getValue().getFragments().length >= 1) {
            highlightsList.add(new Pair(key, entry.getValue().getFragments()[0].toString()));
        }
    }
    feedMetadataSearchResultData.setHighlights(highlightsList);
    feedMetadataSearchResultData.setRawData(searchHit.getSource());
    feedsMetadataTypeResultCount += 1L;
    return feedMetadataSearchResultData;
}
Also used : ArrayList(java.util.ArrayList) HighlightField(org.elasticsearch.search.highlight.HighlightField) HashMap(java.util.HashMap) Map(java.util.Map) FeedMetadataSearchResultData(com.thinkbiganalytics.search.rest.model.FeedMetadataSearchResultData) Pair(com.thinkbiganalytics.search.rest.model.Pair)

Example 12 with Pair

use of com.thinkbiganalytics.search.rest.model.Pair in project kylo by Teradata.

the class ElasticSearchSearchResultTransform method getSchemaSearchResultData.

private SchemaSearchResultData getSchemaSearchResultData(SearchHit searchHit) {
    final String DATABASE_NAME = "databaseName";
    final String DATABASE_OWNER = "databaseOwner";
    final String TABLE_CREATE_TIME = "tableCreateTime";
    final String TABLE_NAME = "tableName";
    final String TABLE_TYPE = "tableType";
    final String HIVE_COLUMNS = "hiveColumns";
    final String COLUMN_TYPE = "columnType";
    final String COLUMN_NAME = "columnName";
    final String COLUMN_COMMENT = "columnComment";
    final String HIVE_COLUMNS_COLUMN_TYPE = HIVE_COLUMNS + "." + COLUMN_TYPE;
    final String HIVE_COLUMNS_COLUMN_TYPE_NEW_DESCRIPTION = "Column type";
    final String HIVE_COLUMNS_COLUMN_NAME = HIVE_COLUMNS + "." + COLUMN_NAME;
    final String HIVE_COLUMNS_COLUMN_NAME_NEW_DESCRIPTION = "Column name";
    final String HIVE_COLUMNS_COLUMN_COMMENT = HIVE_COLUMNS + "." + COLUMN_COMMENT;
    final String HIVE_COLUMNS_COLUMN_COMMENT_NEW_DESCRIPTION = "Column comment";
    Map<String, Object> searchHitSourceMap = searchHit.sourceAsMap();
    SchemaSearchResultData schemaSearchResultData = new SchemaSearchResultData();
    schemaSearchResultData.setDatabaseName(searchHitSourceMap.getOrDefault(DATABASE_NAME, "").toString());
    schemaSearchResultData.setDatabaseOwner(searchHitSourceMap.getOrDefault(DATABASE_OWNER, "").toString());
    schemaSearchResultData.setTableCreateTime(searchHitSourceMap.getOrDefault(TABLE_CREATE_TIME, "").toString());
    schemaSearchResultData.setTableName(searchHitSourceMap.getOrDefault(TABLE_NAME, "").toString());
    schemaSearchResultData.setTableType(searchHitSourceMap.getOrDefault(TABLE_TYPE, "").toString());
    List<HiveColumn> hiveColumns = new ArrayList<>();
    List<Pair> highlightsList = new ArrayList<>();
    @SuppressWarnings("unchecked") List<Map<String, String>> hiveColumnsListOfMaps = (List<Map<String, String>>) searchHitSourceMap.getOrDefault(HIVE_COLUMNS, Collections.emptyList());
    for (Map<String, String> hiveColumnsMap : hiveColumnsListOfMaps) {
        String columnName = "";
        String columnType = "";
        String columnComment = "";
        for (Map.Entry<String, String> hiveColumnEntry : hiveColumnsMap.entrySet()) {
            if (hiveColumnEntry.getKey().equals(COLUMN_TYPE)) {
                columnType = hiveColumnEntry.getValue();
            } else if (hiveColumnEntry.getKey().equals(COLUMN_NAME)) {
                columnName = hiveColumnEntry.getValue();
            } else if (hiveColumnEntry.getKey().equals(COLUMN_COMMENT)) {
                columnComment = hiveColumnEntry.getValue();
            }
        }
        hiveColumns.add(new HiveColumn(columnName, columnType, columnComment));
    }
    Map<String, HighlightField> highlights = searchHit.getHighlightFields();
    for (Map.Entry<String, HighlightField> entry : highlights.entrySet()) {
        String key = entry.getKey();
        switch(key) {
            case HIVE_COLUMNS_COLUMN_TYPE:
                key = HIVE_COLUMNS_COLUMN_TYPE_NEW_DESCRIPTION;
                break;
            case HIVE_COLUMNS_COLUMN_NAME:
                key = HIVE_COLUMNS_COLUMN_NAME_NEW_DESCRIPTION;
                break;
            case HIVE_COLUMNS_COLUMN_COMMENT:
                key = HIVE_COLUMNS_COLUMN_COMMENT_NEW_DESCRIPTION;
                break;
        }
        if (entry.getValue().getFragments().length >= 1) {
            highlightsList.add(new Pair(key, entry.getValue().getFragments()[0].toString()));
        }
    }
    schemaSearchResultData.setHighlights(highlightsList);
    schemaSearchResultData.setHiveColumns(hiveColumns);
    schemaSearchResultData.setRawData(searchHit.getSource());
    schemaTypeResultCount += 1L;
    return schemaSearchResultData;
}
Also used : ArrayList(java.util.ArrayList) HighlightField(org.elasticsearch.search.highlight.HighlightField) SchemaSearchResultData(com.thinkbiganalytics.search.rest.model.SchemaSearchResultData) ArrayList(java.util.ArrayList) List(java.util.List) HiveColumn(com.thinkbiganalytics.search.rest.model.HiveColumn) HashMap(java.util.HashMap) Map(java.util.Map) Pair(com.thinkbiganalytics.search.rest.model.Pair)

Aggregations

Pair (com.thinkbiganalytics.search.rest.model.Pair)12 ArrayList (java.util.ArrayList)12 HashMap (java.util.HashMap)10 Map (java.util.Map)7 TableSearchResultData (com.thinkbiganalytics.search.rest.model.TableSearchResultData)4 List (java.util.List)4 HiveColumn (com.thinkbiganalytics.search.rest.model.HiveColumn)3 HighlightField (org.elasticsearch.search.highlight.HighlightField)3 CategoryMetadataSearchResultData (com.thinkbiganalytics.search.rest.model.CategoryMetadataSearchResultData)2 SchemaSearchResultData (com.thinkbiganalytics.search.rest.model.SchemaSearchResultData)2 Nonnull (javax.annotation.Nonnull)2 Lists (com.google.common.collect.Lists)1 Generex (com.mifmif.common.regex.Generex)1 AnnotatedFieldProperty (com.thinkbiganalytics.annotations.AnnotatedFieldProperty)1 AnnotationFieldNameResolver (com.thinkbiganalytics.annotations.AnnotationFieldNameResolver)1 QueryResult (com.thinkbiganalytics.discovery.schema.QueryResult)1 PropertyExpressionResolver (com.thinkbiganalytics.feedmgr.nifi.PropertyExpressionResolver)1 EditFeedEntity (com.thinkbiganalytics.feedmgr.rest.model.EditFeedEntity)1 EntityVersionDifference (com.thinkbiganalytics.feedmgr.rest.model.EntityVersionDifference)1 FeedMetadata (com.thinkbiganalytics.feedmgr.rest.model.FeedMetadata)1