I would code this in Ruby on Rails using PostgreSQL. I would recommend using Heroku for hosting and I can set up a demo of the site on Heroku.
This will include three models (i.e. three tables in the database): users, profile pictures, and messages. User registration can be handled by Devise. Pages may include Edit Profile, View Profile, Search, Search Results, Send Message, Read Messages. Let me know what information you want to include in the profile.
The search engine would be a simple logical search where results are filtered by each requirement the user specifies.