# SOLR Core Records Table Design ``` transformed_record = { "$schema": "../iSamplesSchemaBasicSMR.json", "@id": string, "label": string "sampleidentifier": string "description": string text copyField from string (https://solr.apache.org/guide/8_8/copying-fields.html) "hasContextCategory": multivalue string "hasMaterialCategory": multivalue string "hasSpecimenCategory": multivalue string "keywords": multivalue string "producedBy": { "label": string "description": string text copyField from string (https://solr.apache.org/guide/8_8/copying-fields.html) "hasFeatureOfInterest": string "responsibility": multivalue string "resultTime": date time "samplingSite": { "description": "label": "location": { "elevation": - float "latitude": - float - LatLonPointSpatialField (https://solr.apache.org/guide/8_8/spatial-search.html) "longitude": - float - LatLonPointSpatialField (https://solr.apache.org/guide/8_8/spatial-search.html) }, "placeName": multivalue string }, }, "registrant": multivalue string "samplingPurpose": multivalue string } ``` - Use string for any literal values - Multivalued fields for any lists - Flatten core record structure by combining names Latitude and longitude also stored as `LatLonPointSpatialField`. Preferred structure in core record should probably be GeoJSON. https://geojson.org/ Responsibility is a strange one since it encodes both name and role into a single string value, e.g. ["Evans_Leigh,,Collector","Andra Bobbitt,,Sample Owner"]