12. A computer system, comprising: a processor for executing instructions; and a computer readable medium, coupled to the processor in operation, wherein the computer readable medium contains code modules of instructions that, if executed by the processor, are operable to cause the computer system to receive a query; identify a first term in the query, wherein the first term comprises a word or a phrase; match the first term with a search index associated with a plurality of documents, or with a searchable collection of documents, each document comprising one or more terms; return at least a portion of the plurality of documents or document representations as a search result based on the query, wherein at least two of the documents in the search result contain or are associated with the first term; and rank the search result based at least on a first score associated with the first term, wherein the first score is produced using a first groups of steps or a second group of steps, wherein the first group of steps comprise: (a) identifying a document in the plurality of documents, (b) identifying a sentence containing the first term and a second term, wherein the sentence comprises a subject and a non-subject portion of the sentence, (c) obtaining a pre-defined criterion for a computer program to determine whether the first term is of greater importance than the second term, or the second term is of greater importance than the first term based on whether the first term or the second term is contained in the subject or the non-subject portion of the sentence, and (d) determining the first score based at least on the pre-defined criterion; wherein the second group of steps comprise: (e) tokenizing the document into tokens as instances of terms, each token or term comprising one or more words or phrases; (f) identifying a first token instance of the first term, wherein the first token instance is or is contained in a grammatical subject of a sentence; (g) assigning a first importance value to the first token instance for being or being contained in a grammatical subject of a sentence; (h) identifying a second token instance of the first term, wherein the second token instance is or is in a non-subject portion of a sentence; (i) assigning a second importance value to the second token instance for not being or not being contained in a grammatical subject of a sentence, wherein the second importance value is different from the first importance value; (j) determining the first score for the first term based on the sum of the first importance value and the second importance value.
12. A computer system, comprising: a processor for executing instructions; and a computer readable medium, coupled to the processor in operation, wherein the computer readable medium contains code modules of instructions that, if executed by the processor, are operable to cause the computer system to receive a query; identify a first term in the query, wherein the first term comprises a word or a phrase; match the first term with a search index associated with a plurality of documents, or with a searchable collection of documents, each document comprising one or more terms; return at least a portion of the plurality of documents or document representations as a search result based on the query, wherein at least two of the documents in the search result contain or are associated with the first term; and rank the search result based at least on a first score associated with the first term, wherein the first score is produced using a first groups of steps or a second group of steps, wherein the first group of steps comprise: (a) identifying a document in the plurality of documents, (b) identifying a sentence containing the first term and a second term, wherein the sentence comprises a subject and a non-subject portion of the sentence, (c) obtaining a pre-defined criterion for a computer program to determine whether the first term is of greater importance than the second term, or the second term is of greater importance than the first term based on whether the first term or the second term is contained in the subject or the non-subject portion of the sentence, and (d) determining the first score based at least on the pre-defined criterion; wherein the second group of steps comprise: (e) tokenizing the document into tokens as instances of terms, each token or term comprising one or more words or phrases; (f) identifying a first token instance of the first term, wherein the first token instance is or is contained in a grammatical subject of a sentence; (g) assigning a first importance value to the first token instance for being or being contained in a grammatical subject of a sentence; (h) identifying a second token instance of the first term, wherein the second token instance is or is in a non-subject portion of a sentence; (i) assigning a second importance value to the second token instance for not being or not being contained in a grammatical subject of a sentence, wherein the second importance value is different from the first importance value; (j) determining the first score for the first term based on the sum of the first importance value and the second importance value. 15. The computer system of claim 12 , when the first group of steps are used, the first score for the first term is determined further based on a first frequency of the first term in the text content.