diff --git a/src/src/constants.jsx b/src/src/constants.jsx index 8b596a36..0869036e 100644 --- a/src/src/constants.jsx +++ b/src/src/constants.jsx @@ -207,20 +207,20 @@ export const EXCLUDE_USER_GROUPS = ["2cf25858-ed44-11e8-991d-0e368f3075e8", "577 // this is a list of fields for the keyword search. note: must ID fields need to use .keyword export const ES_SEARCHABLE_FIELDS = [ + "created_by_user_displayname", + "created_by_user_email", + "dataset_info", + "datasets.group_uuid", "description.keyword", - "hubmap_id.keyword", - "submission_id.keyword", "display_doi.keyword", - "lab_donor_id.keyword", "display_subtype.keyword", + "hubmap_id.keyword", + "lab_dataset_id.keyword", + "lab_donor_id.keyword", "lab_name.keyword", "lab_tissue_sample_id.keyword", - "lab_donor_id.keyword", - "lab_dataset_id.keyword", - "created_by_user_displayname", - "created_by_user_email", - "dataset_info" - ]; + "submission_id.keyword", +]; // this list is for wildcard searchable fields export const ES_SEARCHABLE_WILDCARDS = [ diff --git a/src/src/service/search_api.js b/src/src/service/search_api.js index 81b805ef..71505e1b 100644 --- a/src/src/service/search_api.js +++ b/src/src/service/search_api.js @@ -111,7 +111,7 @@ export function api_search2(params, auth, from, size, fields) { * */ export function search_api_filter_es_query_builder(fields, from, size, colFields) { - + console.debug('%c⊙', 'color:#00ff7b', "fields", fields); let requestBody = esb.requestBodySearch(); let boolQuery = ""; if (fields["keywords"] && fields["keywords"].indexOf("*") > -1) { // if keywords contain a wildcard @@ -128,7 +128,13 @@ export function search_api_filter_es_query_builder(fields, from, size, colFields if (fields["group_name"]) { boolQuery.must(esb.matchQuery("group_name.keyword", fields["group_name"])); } else if (fields["group_uuid"]) { - boolQuery.must(esb.matchQuery("group_uuid.keyword", fields["group_uuid"])); + // this'll be from the dropdown, + // if its a collection, we wanna search the datasets of it, not it itself + if (fields["entity_type"] === 'Collection') { + boolQuery.must(esb.matchQuery("datasets.group_uuid.keyword", fields["group_uuid"])); + } else { + boolQuery.must(esb.matchQuery("group_uuid.keyword", fields["group_uuid"])); + } } // was specimen types selected if (fields["sample_category"]) {