award.number filter returning 0 results in Public REST API after ES cutover, but still working in Polite pre-cutover
Background
REST API user reported that his queries that used filter=award.number: returned 0 results whereas the same queries used to return some results.
e.g. https://api.crossref.org/works?filter=award.number:FA9550-18-1-0383
Observed behavior
I confirmed this behavior and, in light of the recent elasticsearch cutover for Public, tried the same query on Polite.
https://api.crossref.org/works?filter=award.number:FA9550-18-1-0383&mailto=support@crossref.org
That returns results as expected.
Update: Polite has also been cutover, so this observed behavior is no longer true.
Expected behavior
How urgent
Definition of ready
-
Product owner: @ppolischuk1 -
Tech lead: @dtkaczyk -
Service:: or C:: label applied -
Definition of done updated -
Acceptance testing plan: staging -
Weight applied
Definition of done
-
Unit tests identified, implemented, and passing -
Code reviewed -
Available for acceptance testing via a staging URL, or otherwise -
Knowledge base reviewed and updated -
Public documentation reviewed and updated -
Acceptance criteria met -
index award.numberas keyword instead of text -
award.numberfilter retrieves DOIs with given award numbers
-
-
Acceptance testing passed -
Deployed to production
Notes
The procedure to fix (see also https://docs.google.com/document/d/1T2C5Ng1Fc608Gm6xEMRnQa-9tAwJypbxnRpLMhacs_E/edit#heading=h.hazctw4jli5f ):
- Prepare
- add new field
:award-keywordof typekeywordto ES work mapping - modify the indexing code to index the data in both
:awardand:award-keyword - deploy the above changes to production
- add new field
- Scan & reindex
- Finalise
- make retrieval and
award.numberfilter use the field:award-keyword - remove updating
:awardfield from indexing - make sure nothing else uses
:awardfield anymore - deploy the above changes to production
- make retrieval and
Edited by Patrick Polischuk