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; and wherein: the processing said each of the candidate answers in the subset of candidate answers includes using a supporting passage retrieval process to identify the passages in which said each of the candidate answers occur; the applying the candidate ranking function includes sending said subset of candidate answers from the supporting passage retrieval process to a candidate ranking function module, and using said candidate ranking function module to apply the candidate ranking function to said candidate answers in the subset of candidate answers; and the processing said each of the candidate answers in the subset of candidate answers includes processing said each of the candidate answers using a context independent candidate answer process to obtain one or more post-filtering scores for said each of the candidate answers.