We all know that at Facebook the graph search exists. Users can search for people who like cycling and are from London, for example, friends of friends who like yoga, or photos of friends or boyfriends from a certain month or year.
All this data is extracted from a single search input with no filter fields.
I am trying to start with something similar with PHP but I couldn't tell exactly how this might be implemented.
I was wondering if this is applied through a certain database design approach (simple RDBMS) only... or is it a sort of graph node structures that get logically linked to database tables with keywords... or a mixture of RDBMS and NOSQL... or any other approach. As for the text input itself, there must be some sort of dissection and matching against specific keywords to get the relevance of data and directing it to the proper query execution.
What is the best practice to achieve a php graph search (or something similar at least) within my website where I have something similar to a retail e-commerce system with grouped relevant data?