A method for using dual indices to support query expansion, relevance models, non-relevance models and an intelligent search interface, comprising using a computing device to:
- access an inverted index to obtain an initial retrieval of results in response to a query, and to generate a rank list of the results, the results referring to information units (IUs) where terms of the query occur;
- determine a number of “N” IUs in the results that are regarded by the computing device as relevant by accessing a forward index;
- determine at least one non-relevant IU in the results that are regarded by the computing device as not relevant by accessing the forward index;
- and
- using the forward index to perform any one from the group consisting of:
- computing query expansion weights, building the relevance models by the contexts of query terms in a top “N” retrieved IUs within the number of “N” IUs, building the non-relevance models using the at least one non-relevant IU, and finding the longest contiguous sequences of query terms in the query found in an IU;
- wherein the forward index and inverted index have pointers to locations in the IUs where terms of the query occur more than once, and a forward index and inverted index pointer storage stores the locations in the IUs where the query term occurs only once in the IUs, and the forward index retrieves a term frequency vector of the IU or a set of contexts of the IU;
- and
- wherein computing query expansion weights for the top “N” retrieved IUs utilizes the forward index to compute query expansion by:
- computing at least one relevance query expansion term weight using the top “N” retrieved IUs in the results and the forward index;
- computing at least one non-relevance query expansion term weight using the at least one non-relevant IU in the results and the forward index;
- and
- selecting query expansion terms using the results, the at least one relevance query expansion term weight, and the at least one non-relevance query expansion term weight.