MongoDB doesn't have full text search (that is decently fast). Thus, I have to match strings by the beginning of a word. Thus, if a user types in over
, overflow
will match, but stackoverflow
will not.
My question is: is it detrimental to the user experience if we only match the beginning of a word? Do you as a user expect these results in a search query? Full text search queries work for most sites I've used. A use case scenario:
Suppose I'm searching for a friend name Elizabeth Banks
, but she only goes by liz
, so I type is liz
, but that won't match at all.
Also, the order of the words do not matter as I plan to split the phrase into keywords. For example, if I have a user name Elizabeth Banks
, I will store the keywords elizabeth
and banks
in user.keywords
. Now when I search for "elizabeth banks", I will search through users where user.keywords
has a match for both /^elizabeth/
and /^banks/
.
MongoDB Reference: http://www.mongodb.org/display/DOCS/Full+Text+Search+in+Mongo