1. A computer-implemented method comprising: determining, for a current question presented by an asking user and for a plurality of existing questions within a plurality of online communities that each has a plurality of users contributing answers to the plurality of existing questions, a plurality of question-to-question similarity values; determining, for the current question presented by the asking user and of the plurality of users contributing answers, a plurality of question-to-user similarity values, wherein the question-to-question similarity values include: values determined by how many times a particular question is viewed by a corresponding online community, how many unique users answered the particular question, whether or not another asking user answered the particular question, whether or not another asking user answered the particular question, a word vector of the existing question, and a language analysis of the particular question in a corresponding online community; determining, for the current question presented by the asking user and the plurality of online communities, a plurality of question-to-community similarity values, the plurality of question-to-community similarity values including values determined from a word vector of a community title and description; selecting one or more of the plurality of online communities based on the plurality of question-to-question similarity values, the plurality of question-to-user similarity values and the plurality of question-to-community similarity values; and routing the current question presented by the asking user to the selected one or more of the plurality of online communities.