From 54970a5caf1d6c503c111bccee584835add540b0 Mon Sep 17 00:00:00 2001 From: Cody O'Donnell Date: Wed, 22 Apr 2026 10:52:27 -0700 Subject: [PATCH 1/4] Document text search functionality in portal guide --- content/home/src/howto_guides/portal_guide.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/content/home/src/howto_guides/portal_guide.md b/content/home/src/howto_guides/portal_guide.md index 8e0142c5..cd0f886a 100644 --- a/content/home/src/howto_guides/portal_guide.md +++ b/content/home/src/howto_guides/portal_guide.md @@ -103,6 +103,42 @@ our [workflow documentation](https://github.com/microbiomedata/workflow_document ## Portal Functionality +### Text Search + +TODO: upload and add text search screenshot + +Samples and studies can be searched by arbitrary text search terms using the `Search` input at the top of the left query term bar. Simply type in your search term and press enter or click the item underneath the `Text Search` label. This search uses a simple [full text search](https://www.postgresql.org/docs/current/textsearch-intro.html) algorithm to query for samples and studies across the following text or JSON columns in the database: + +**Study Columns** ([live list in the code](https://github.com/microbiomedata/nmdc-server/blob/main/nmdc_server/models.py#L371)) +- `id` +- `name` +- `description` +- `gold_name` +- `gold_description` +- `scientific_objective` +- `annotations` +- `part_of` +- `children` + +**Sample Columns** ([live list in the code](https://github.com/microbiomedata/nmdc-server/blob/main/nmdc_server/models.py#L486)) +- `id` +- `name` +- `description` +- `study_id` +- `name` +- `env_broad_scale_id` +- `env_local_scale_id` +- `env_medium_id` +- `ecosystem` +- `ecosystem_category` +- `ecosystem_type` +- `ecosystem_subtype` +- `specific_ecosystem` +- `annotations` +- `alternate_identifiers` + +The text search input can also accept NMDC identifiers. Searching by an identifier will find all studies and samples that are associated with that identifier. For example, this can be used to quickly find samples that are related to a specific study ID (e.g. `nmdc:sty-11-r2h77870`). Users can also use this to find samples that are associated with specific Data Object IDs, Omics Processing IDs, or Workflow IDs. + ### Faceted search and access ### *Search by investigator name* From c42067391a45042728ea2525294c92e12955365e Mon Sep 17 00:00:00 2001 From: Cody O'Donnell Date: Wed, 22 Apr 2026 10:58:48 -0700 Subject: [PATCH 2/4] Upload text search screenshot --- .../howto_guides/portal_guide/text_search.png | Bin 0 -> 7603 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 content/home/src/_static/images/howto_guides/portal_guide/text_search.png diff --git a/content/home/src/_static/images/howto_guides/portal_guide/text_search.png b/content/home/src/_static/images/howto_guides/portal_guide/text_search.png new file mode 100644 index 0000000000000000000000000000000000000000..e745751f896584b7cbdacbfa5ac35886e5414180 GIT binary patch literal 7603 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 literal 0 HcmV?d00001 From 84b6b8235e5867406043541c2c1272d56e1d110e Mon Sep 17 00:00:00 2001 From: Cody O'Donnell Date: Wed, 22 Apr 2026 11:02:20 -0700 Subject: [PATCH 3/4] Add text search screenshot to portal guide page --- content/home/src/howto_guides/portal_guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/home/src/howto_guides/portal_guide.md b/content/home/src/howto_guides/portal_guide.md index cd0f886a..137b6fc4 100644 --- a/content/home/src/howto_guides/portal_guide.md +++ b/content/home/src/howto_guides/portal_guide.md @@ -105,7 +105,7 @@ our [workflow documentation](https://github.com/microbiomedata/workflow_document ### Text Search -TODO: upload and add text search screenshot +[![](../_static/images/howto_guides/portal_guide/text_search.png)](../_static/images/howto_guides/portal_guide/text_search.png) Samples and studies can be searched by arbitrary text search terms using the `Search` input at the top of the left query term bar. Simply type in your search term and press enter or click the item underneath the `Text Search` label. This search uses a simple [full text search](https://www.postgresql.org/docs/current/textsearch-intro.html) algorithm to query for samples and studies across the following text or JSON columns in the database: From c23ede3e7535a39655c3ee8e8f82c569b6fdf2c3 Mon Sep 17 00:00:00 2001 From: Cody O'Donnell Date: Wed, 29 Apr 2026 10:14:22 -0700 Subject: [PATCH 4/4] Revise NMDC identifiers language for text search guide --- content/home/src/howto_guides/portal_guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/home/src/howto_guides/portal_guide.md b/content/home/src/howto_guides/portal_guide.md index 137b6fc4..8bb1f221 100644 --- a/content/home/src/howto_guides/portal_guide.md +++ b/content/home/src/howto_guides/portal_guide.md @@ -137,7 +137,7 @@ Samples and studies can be searched by arbitrary text search terms using the `Se - `annotations` - `alternate_identifiers` -The text search input can also accept NMDC identifiers. Searching by an identifier will find all studies and samples that are associated with that identifier. For example, this can be used to quickly find samples that are related to a specific study ID (e.g. `nmdc:sty-11-r2h77870`). Users can also use this to find samples that are associated with specific Data Object IDs, Omics Processing IDs, or Workflow IDs. +The text search input can also accept NMDC identifiers. Searching by an identifier will find all studies and samples that are associated with that identifier. For example, this can be used to quickly find samples that are related to a specific study ID (e.g. `nmdc:sty-11-r2h77870`). Users can also use this to find samples that are associated with specific Data Object IDs, Data Generation IDs, or Workflow Execution IDs. ### Faceted search and access