1. A method of searching for keywords in a database having a plurality of documents, each including a subset of a plurality of keywords and, for each keyword in the subset, a number of values stored in a storage medium, each value indicating a location of the keyword within the document, the method comprising the steps of: (a) forming a query specifying first and second keywords and a maximum distance defining a relative range of keyword locations that satisfy the query; (b) establishing a plurality of ranges, comprising a set of ranges and a group of ranges for each respective document in which the first keyword appears at least once, each set of ranges including a range for each respective location of the first keyword, each range being defined by respective minimum and maximum location values; (c) repeating, for each respective value of the second keyword in each respective document for which a set of ranges is established, the step of: (1) repeating, for each one of the set of ranges corresponding to the respective document, the steps of: (i) establishing a test range having minimum and maximum test values equal to the respective minimum and maximum values of the one range, (ii) adjusting the test range, so that the respective value is included in the test range, if the respective value is not between the minimum and maximum test values, and (iii) adding the test range to the group of ranges corresponding to the respective document if the minimum and maximum test values do not differ from one another by more than the maximum distance after step (ii); and (d) identifying each document for which the respective group of ranges includes at least one range as being found by the searching.