intermine / intermine/intermine
FacetSearch and FacetList endpoints return invalid facet keys
- Dominant language
- Java
- Stars
- 271
- Forks
- 344
- PR merge metrics
- No merged PRs in 30d
Description
Here's the response to a FacetSearch request,
```
GET www.humanmine.org/humanmine/service/facets?q=gata&facet_organism.shortName=H.%20sapiens 200
{"facets":{"results":[{"Category":[{"name":"Exon","value":497},{"name":"Gene","value":83},{"name":"MRNA","value":49},{"name":"Allele","value":24},{"name":"Protein","value":11},{"name":"Transcript","value":11}]},{"Organism":[{"name":"H. sapiens","value":675}]}]},"executionTime":"2019.08.15 11:03::48","wasSuccessful":true,"error":null,"statusCode":200}
```
it returns `"Organism"` as the key for the organism facet.
This differs from a QuickSearch request
```
GET www.humanmine.org/humanmine/service/search?q=gata&facet_organism.shortName=H.%20sapiens 200
{"totalHits":675,"facets":{"Category":{"Transcript":11,"Allele":24,"Exon":497,"Gene":83,"MRNA":49,"Protein":11},"organism.shortName":{"H. sapiens":675}},"results": [...],"executionTime":"2019.08.15 11:03::13","wasSuccessful":true,"error":null,"statusCode":200}
```
which returns `"organism.shortName"` as the key instead.
Using `facet_Organism` (simply "facet_" prepended to the key) has no effect on the results of the search. You have to use `facet_organism.shortName` to filter the results down. (This applies to both FacetSearch and QuickSearch.)
Since FacetSearch doesn't tell the client about `organism.shortName`, it doesn't seem to be possible to specify it as a query string to filter the search. FacetList has the same issue, returning `"Organism"` instead of `"organism.shortName"`. If the Facet endpoints returned the same keys as QuickSearch does, this wouldn't be a problem.
I heard from Dani that @arunans23 may have some information here?
Contributor guide
Assessment
This issue has not been assessed yet.