I'm not sure if a FULL-TEXT index is the best way to go (it's not an SQL standard and does have a few drawbacks in it's implementation in MySQL).
Assuming your database is properly normalised (i.e. you have a set list of options for each characteristic and they are stored in a separate field) you could do something like:
SELECT p.person_id,
(
IF(profession_id IN (list of professions to search),1,0) +
IF(religion_id IN (list of religions to search),1,0) +
IF(age BETWEEN 18 AND 25,1,0) +
IF(language_id IN (list of languages to search),1,0)
) AS score
FROM people HAVING score>=1 ORDER BY score DESC
What this should do is calculate a score for each person based on one point if there is a match in any particular category. It should return all results that score 1 or more in descending order of their score. You can easily calculate the score as the maximum score will be 4 (a match for profession, religion, language and age).