Object Recognition is responding to the question "What is the object in the image" Whereas, Object detection is answering the question "Where is that object".
Image retrieval problem, that is, the problem of searching for digital images in large databases.
IMHO, specific object detection is easier: you know about the properties of this object. Whereas when it comes to "generic object detection", the first question has to be "what exactly is considered an 'object' ?" There may be objects within your image YOU will not want to consider where others are exactly considering these objects - ignoring the objects of YOUR interest.
Example ? Regarding images e.g. screws, one machine might want to check for production errors - measuring the properties of the individual screws. The 'objects' are the screws. Another instance might want to detect the level of contamination - looking for signs of dust, oil etc. - completely ignoring the screws as 'screws'.