1. A method of generating answers to questions, comprising: receiving an input query; conducting a search through one or more data sources to identify a plurality of candidate answers to the input query; providing each of the candidate answers with a preliminary score based on one or more defined criterion; filtering out any of the candidate answers with a preliminary score that does not satisfy a defined condition, wherein the candidate answers having preliminary scores that satisfy said defined condition form a subset of the candidate answers; for each of the candidate answers in said subset, processing said each of the candidate answers to produce a plurality of further scores for said each of the candidate answers; applying a candidate ranking function to said plurality of further scores to determine a ranking for said each of the candidate answers in said subset; and after the applying the candidate ranking function, selecting one or more of the candidate answers as one or more final answers to the input query.