That still didn't quite work... if I search Jack's it works, but Jacks does not... here is my query, maybe I'm doing something wrong.
SELECT listings.*, menuitems.menuName, menuitems.menuDescription,((1.8*(MATCH (listingCat1,listingCat2,listingCat3,listingCat4,listingCat5) AGAINST ('(jack\'s) ("jack\'s") (+jack\'s)' IN BOOLEAN MODE))) + (1.3*(MATCH (listingName) AGAINST ('\{jack\'s\} (jack\'s) ("jack\'s") (+jack\'s)' IN BOOLEAN MODE))) + (0.6*(MATCH (listingAddress1,listingAddress2,listingPostalCode,listingCity,listingProvince,listingPhone,listingFax,listingEmail,listingWebsite,listingLocation,menuName,menuDescription,menuPriceTag1,menuPriceTag2,menuPriceTag3,menuPriceTag4,menuPriceTag5,menuPriceTag6,menuPriceTag7,menuPriceTag8,menuPriceTag9,menuPriceTag10) AGAINST ('(jack\'s) ("jack\'s") (+jack\'s)' IN BOOLEAN MODE)))) AS relevance
FROM listings inner join menuitems on (menuitems.listingID = listings.listingID OR menuitems.listingID = listings.masterID)
WHERE MATCH (listingName,listingCat1,listingCat2,listingCat3,listingCat4,listingCat5,listingAddress1,listingAddress2,listingPostalCode,listingCity,listingProvince,listingPhone,listingFax,listingEmail,listingWebsite,listingLocation) AGAINST ('\{jack\'s\} (jack\'s) ("jack\'s") (+jack\'s)' IN BOOLEAN MODE)
OR MATCH (menuName,menuDescription,menuPriceTag1,menuPriceTag2,menuPriceTag3,menuPriceTag4,menuPriceTag5,menuPriceTag6,menuPriceTag7,menuPriceTag8,menuPriceTag9,menuPriceTag10) AGAINST ('("jack\'s") (+jack\'s)' IN BOOLEAN MODE)
AND listings.listingActive = 0
GROUP BY listingID
ORDER BY relevance DESC