SearchIndex
org.sagebionetworks.repo.model.search.table.SearchIndex
A Synapse entity that materializes an OpenSearch index from a SQL view of a table-like entity. The definingSQL picks the columns and rows to index; the SearchConfiguration (either pointed at directly via searchConfigurationId or inherited from an ancestor binding) controls analyzers and synonyms. Once built, the index supports full-text search, faceted search, and autocomplete via the search endpoints on the SearchManagementController.
Per-column ignore_above limit at index-build time — values longer than this on a given field are NOT indexed for exact match or sort, but remain stored in the source document:
| Synapse column type | ignore_above (keyword sub-field) |
|---|---|
| STRING, STRING_LIST, LINK | 1,000 chars |
| MEDIUMTEXT | 100,000 chars |
| LARGETEXT | 8,192 chars |
| ENTITYID, USERID, ENTITYID_LIST, USERID_LIST | 256 chars |
| INTEGER, DATE, INTEGER_LIST, DATE_LIST, FILEHANDLEID, SUBMISSIONID, EVALUATIONID, DOUBLE, BOOLEAN, BOOLEAN_LIST, JSON | n/a |
Maximum 500,000 indexed rows per SearchIndex.
| Field | Type | Description |
|---|---|---|
| name | STRING | The name of this entity. Must be 256 characters or less. Names may only contain: letters, numbers, spaces, underscores, hyphens, periods, plus signs, apostrophes, and parentheses |
| description | STRING | The description of this entity. Must be 1000 characters or less. |
| id | STRING | The unique immutable ID for this entity. A new ID will be generated for new Entities. Once issued, this ID is guaranteed to never change or be re-issued |
| etag | STRING | Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time an entity is updated it is used to detect when a client's current representation of an entity is out-of-date. |
| createdOn | STRING | The date this entity was created. |
| modifiedOn | STRING | The date this entity was last modified. |
| createdBy | STRING | The ID of the user that created this entity. |
| modifiedBy | STRING | The ID of the user that last modified this entity. |
| parentId | STRING | The ID of the Entity that is the parent of this Entity. |
| concreteType | STRING | Indicates which implementation of Entity this object represents. The value is the fully qualified class name, e.g. org.sagebionetworks.repo.model.FileEntity. |
| definingSQL | STRING | The Synapse SQL statement that defines which columns and rows are indexed. Must reference exactly one entity (multi-entity JOINs are not supported). Each SELECT-list column becomes a field in the index — including literals and aliased expressions, which get a real ColumnModel id and behave as first-class columns. |
| searchConfigurationId | STRING | Optional. ID of the SearchConfiguration to apply when building this index. If omitted, the build walks up the entity hierarchy (entity → folder → project) looking for the closest SearchConfigBinding; if none is found, platform defaults are used. |