A system for searching an interactive television program guide database, said system comprising: a client, wherein said client is in periodic communication with a server, and wherein said client downloads current program information from said server; a program guide database resident on said client, wherein said program information is imported into said database; means, at said client, for extracting text from fields in the program guide information; means, at said client, for processing the extracted text to create keys, each created key is associated with a program identifier; means, at said client, for sorting the created keys; means, at said client, for eliminating redundant keys from the created keys to create a set of unique keys so that each unique key is paired with a list of program identifiers corresponding to each occurrence of the unique key in the created keys before the elimination of redundant keys; means, at said client, for creating a plurality of indexes based on said program information containing at least some of the unique keys and associated lists of program identifiers for said database, each index in the plurality of indexes is created for a specific search feature; an interactive viewer interface for picking programs to record on said client displayed on a display means in communication with said client; means for interacting with said viewer interface by a viewer; wherein said viewer interface incorporates a prefix matching feature that displays, in a scrolling list, items in said database associated with unique keys that have prefixes that match the viewer's alphanumeric input and automatically scrolls the list as the viewer enters the alphanumeric input; and means for searching said database according to a search feature by comparing unique keys in a selected index to viewer alphanumeric input according to at least one of: program title; indexed program attributes; and key words; wherein an index is selected to be searched by the searching means based on the viewer's selection of a search feature. a client, wherein said client is in periodic communication with a server, and wherein said client downloads current program information from said server; a program guide database resident on said client, wherein said program information is imported into said database; means, at said client, for extracting text from fields in the program guide information; means, at said client, for processing the extracted text to create keys, each created key is associated with a program identifier; means, at said client, for sorting the created keys; means, at said client, for eliminating redundant keys from the created keys to create a set of unique keys so that each unique key is paired with a list of program identifiers corresponding to each occurrence of the unique key in the created keys before the elimination of redundant keys; means, at said client, for creating a plurality of indexes based on said program information containing at least some of the unique keys and associated lists of program identifiers for said database, each index in the plurality of indexes is created for a specific search feature; an interactive viewer interface for picking programs to record on said client displayed on a display means in communication with said client; means for interacting with said viewer interface by a viewer; wherein said viewer interface incorporates a prefix matching feature that displays, in a scrolling list, items in said database associated with unique keys that have prefixes that match the viewer's alphanumeric input and automatically scrolls the list as the viewer enters the alphanumeric input; and means for searching said database according to a search feature by comparing unique keys in a selected index to viewer alphanumeric input according to at least one of: program title; indexed program attributes; and key words; program title; indexed program attributes; and key words;