I am running a simple mysql full-text query that searches for users on my site based off of their "display name". The query example is below - in this example we are searching 'lancaster toy store':
SELECT MATCH(`display_name`) AGAINST ('lancaster toy store') as `rel`
WHERE MATCH(`display_name`) AGAINST ('lancaster toy store')
ORDER BY `rel` DESC
It works well in that it pulls up a good amount of results, but an example of the results would be:
- charlotte toy store
- toy store on broadway
- arizona toy stores
- toy store of lancaster
- east coast toys
As you can see, my problem is that people are searching for 'lancaster toy store', and the obvious best result is coming up near the middle or bottom.
I am using the porter-stemmer technique, as well.
Any ideas how to get more accurate results?
UPDATE
Here's the real query (the actual search term is 'lancaster restore'):
SELECT `id`,
MATCH (`display_name`) AGAINST ('lancast* restor*' IN BOOLEAN MODE)
AS `RELEVANCY`
FROM `users`
WHERE `status` = 'active'
&& MATCH (`display_name`) AGAINST ('lancast* restor*' IN BOOLEAN MODE)
ORDER BY `RELEVANCY` DESC
LIMIT 25
and here are the results:
- Habitat for Humanity of Orange County - ReStores
- ReStore 15 Fourth Street Dover NH
- Morris Habitat for Humanity ReStore
- Habitat ReStore Lima Ohio
- Habitat for Humanity Charlotte ReStore
- ReStore Montgomery County
- Dayton Ohio Habitat for Humanity ReStore
- ReStore
- Lancaster Area Habitat for Humanity ReStore