The problem is in the
See the Bing API 2.0 documentation:
The market parameter is optional. If the parameter is not specified, the API will attempts to determine an applicable market through the use of logic such as the IP address of the request, cookies. and other elements.
Compare two results for the same query using different
market option values: en-US vs ru-RU. Each result on the first page of the answer for the en-US market contains the exact query string, while for ru-RU no result does.
Just put a plus before the first quote:
+"Moscow is a beautiful city"
Sometimes this works perfectly. Other times, it lets through a few false positives. Other times, it lets through a lot. But it always seems to work better than anything else you can do (certainly better than any other suggestion here so far).
Another tip: Capitalizing "Moscow" seems to make it work slightly better.
Bing's documentation does claim that putting a phrase in quotes
Returns results that contain the specified phrase, exactly.
Therefore, needing to put a plus at the beginning is clearly a bug - just one of many in Bing that MS apparently doesn't care to fix.
This is what I do:
The only way that the Bing API returns the same results for an exact phrase is to put another double quotes in the query (in REST invokes it seems that is not needed to escape the quotes). I tried first this URL:
The results were diferent. Next I tried this other:
With the second one the results were the same as that in the Bing web search with "google api news" phrase.