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;
}
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;
}
Aggregations