Search works by affiliation

I’m searching all works of one affiliation in specific.

So if i type “Servicio de aprendizaje”, my results set will be a a larger list with ANY coincidence in affiliation with words: Servicio, de, aprendizaje. All words separated. Like a OR clause: Contains “Servicio” OR contains “de” OR contains “Aprendizaje”.

How i can search by a complete name?

My request is:
https://0-api-crossref-org.library.alliant.edu/works/?query.affiliation=Universidad+Pedagógica+y+Tecnológica+de+Colombia

Hi @AndresTorres94. Thanks for your question and welcome to the community forum.

Our REST API does not support Boolean operators (i.e., OR, AND). Instead, we score and sort the relevance of our results. So, the highest results in the API for your query https://0-api-crossref-org.library.alliant.edu/works/?query.affiliation=Universidad+Pedagógica+y+Tecnológica+de+Colombia include matches for (ALL) the words Universidad, Pedagógica, y, Tecnológica, de, and Colombia. Comparatively, if you were to page through more of the results, you might find that you’d eventually only find matches that included (ONLY) the words Universidad and Pedagógica in the affiliation element.

On the first page of results, the first match returns a score of 69.39282, while the 20th result returns the score 64.30234 (the affiliation of that 20th result is “Universidad Pedagógica y Tecnológica de Colombia, Colombia” - so likely an affiliation that is a match for your query, if we’re only searching for exact matches).

If we expand your query and request 200 results - https://0-api-crossref-org.library.alliant.edu/works/?query.affiliation=Universidad+Pedagógica+y+Tecnológica+de+Colombia&rows=200 - you’ll see that the 200th result receives a score of 40.76301, but the affiliations you’re requesting do not appear to be an exact match:

"given": "Rocío",
"family": "Rueda Ortiz",
"sequence": "first",
"affiliation": [
{
"name": "Universidad Pedagógica Nacional"
}
]
},
{
"given": "Mónica",
"family": "Ríos García",
"sequence": "additional",
"affiliation": [
{
"name": "Unidad para la Atención y Reparación Integral a las Víctimas de Colombia"

This additional information should help you decide the threshold for acceptable matching.

Please let me know if you have any additional questions.

Kind regards,
Isaac

Following your comments, The REST API has no function to search by a complete “affiliation” right ?.

So, we have a large results set that we have to process to find the correct results, this will be the right way? Obviously the score would be a reference value for our filtering process

1 Like

Hi @AndresTorres94. Thanks for following up. The query.affiliation is only searching the affiliation, but no there is no way to say that you only want results that match Universidad+Pedagógica+y+Tecnológica+de+Colombia and only Universidad+Pedagógica+y+Tecnológica+de+Colombia.

Yes, using the relevance score to establish a threshold for your queries is how we would advise you to go forward.

My best,
Isaac