# 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"]