Powerful search mechanism for finding language partners
Hello there!
This is my little essay:
The Problem
There are a lot of really interesting people on italki.com (as well as on some other, similar resources) to talk with. But it's not always easy to start a conversation,
because you know nothing about the other person you'd like to talk to.
The Solution
So it would be great if you could search language partners by words, that could describe your mutual interests (hobby for example) or maybe other aspects that could tell you
more about this person.
As for me, I'd like to search by the following words for example:
guitar;
harmonica;
Blues;
bluegrass;
bicycles;
and so on...
But I can't! I just could define some filters like "gender", "speaking language", "learning language", "country", "city". It's useful, but not enough!
There are lots of websites where you can search for language partners.
But most of them don't give you an opportunity to define searching filters by words from describing section of user's profile. Why?
Possible reason for this situation
I think it's a technical issue.
It's not easy to build a mechanism that could do really fast searching in long text fields containing several separate words.
It's much more easy to search in the fields that contain only one word, for example, searching by a city. You could type "New York" and a database will search by word "New York"
in the field "City" of the appointed table. In this case, usually, databases use a special mechanism, called an "index". It's similar to indexes in books. All records in the
table are sorted, so, for database, it's easy to find the required record.
But when you want to search "New York" in the field that may contains phrase "...I live in a wonderful city called New York...", sorting by the whole value of the field, doesn't
make sense! It's because You cannot match values by their whole length.
Searching by separate words is still possible but it may take a very long time to search, so the answer may lie in building a complex mechanism to make the search faster.