1. A computer-implemented method comprising: receiving, on one or more processors, an online question from an asking user; identifying, by the one or more processors, one or more topics of the received online question; identifying, by the one or more processors, a first set of candidate answering users from a plurality of users, the first set of candidate answering users excluding commonality with the asking user; identifying, by the one or more processors, a second set of candidate answering users from the plurality of users, the second set of candidate answering users sharing one or more contextual factors with the asking user, the one or more contextual factors being distinct from the identified one or more topics, the first set of candidate answering users having an expertise level same as that of the second set of candidate answering users, the expertise level being related to the identified one or more topics of the received online question; determining, by the one or more processors, whether the identified one or more topics are subjective topics; ranking, by the one or more processors, in a case where the identified one or more topics are subjective topics, the second set of candidate answering users higher than the first set of candidate answering users; and ranking, by the one or more processors, in a case where the identified one or more topics are not subjective topics, the first set of candidate answering users to a same order as the second set of candidate answering users.