intermine icon indicating copy to clipboard operation
intermine copied to clipboard

FacetSearch and FacetList endpoints return invalid facet keys

Open heralden opened this issue 6 years ago • 0 comments

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?

heralden avatar Aug 15 '19 11:08 heralden