i am creating a search functionality for a website where i need to take the user’s full address from an input e.g “Address 32, City,Region,Country, Postal Code”(no necessary with this order) and return the available restaurant that are around the area.
I have a table “address” where there is a field for each of the above elements.
I was thinking of concatenating the users address from the database and compare it with the user’s input by help of SQL REGEXP.
Is there any other approximate SQL search that can give me that or can you suggest me a different approach?
A friend suggested using (http://www.simonemms.com/2011/02/08/codeigniter-solr/) however with a small research on it the problem still remains.
i am creating a search functionality for a website where i need to take
Share
Trouble with concatentating the address together in SQL is you will miss out on it using indexes. Hence it will be slow. Added to which if you do not know the order of the input elements the chances of it matching what is concatenated from the database (is a likely different order) is slim.
I would suggest for much of the address items, split them off into different tables (ie a table of regions, another of countries, etc) and just store the ids in the columns in the users table.
For a search, identify which of the search fields go with which actual field then join on those to find the real address.
Also means you can identify typos more easily.