Whenever you create a column in your list and want to enable search based on it then you add that column as a Managed Propety in your Shared Service Provider. It works for all type of columns except lookup columns, which actually refers to another list in the site, without needing any further steps. The difference in lookup columns is that they actually save just a reference not the actual value and if you have created a column with the name say Category ( having values Hardware, Software, etc) and add it as a managed property then you will see that you will not get any result if you will try to search by say Hardware,a value from the Category list, because internally only reference was saved and SSP indexed the reference not the actual value.
But don’t worry, there is a simple solution which unfortunately Microsoft has not documented properly. The solution is, just go back and edit your managed property mapping and instead of mapping Category; map ows_Category. This is an internal property generated by the Sharepoint when you created Category and this property saves the actual value.
Now, after doing the crawl, if you will search as before, you will get the expected result.
This approach not wroking in sharepoint 2013 CSWP.
Let me know if any alternative for this.