I have an applicaiton that executes a full text search against a search catalogue. The format of the query is this:
SELECT (stuff) FROM Scope() WHERE "scope" = 'myscope' AND (CONTAINS(PlacesId, 'cc14e254-8241-419c-9c78-68f2d49e2588') ORDER BY ContentTitle ASC
The PlacesId value 'cc14e254-8241-419c-9c78-68f2d49e2588' comes from the taxonomy hidden list in the site collection that the application is running in. The full text search query runs against a managed property called PlaceId that is bound to the termset.
Content in the site collection is classified as belonging to a certain place by using a site column in a content type that is also bound to the Places termset. So the search managed property and the site column bind to the same termset.
In the termset I have a hierarchical structure:
World => Continent => Country => City
For example:
World => Europe => United Kingdom => London
What I am finding is that if I do a query to get all content where PlacesId contains London (using London's GUID) the search just returns the content where the Places site column has London in it. That's what I expect.
However, if I do a query to get all content where PlacesId contains United Kingdom (using United Kingdom's GUID) the search returns me all places where the Places site column contains United Kingdom and also London as well.
So it would appear that the full text search is returning content where the Places value is a child item in the hierarchy of what I am actually looking for.
Has anyone else found this, know of a resolution, whether it is by design?
EDIT: We have found that putting #0 in front of the GUID does seem to solve this, which is rather wierd. Will test this some more but any advice welcome.