1. A computer-implemented method for searching, comprising: identifying one or more matching objects matching one or more terms of a search request in a search index; executing one or more return path methods associated with each of the one or more matching objects; wherein each of the one or more return path methods traverses an object tree and returns a parent object, wherein the parent object is added to a list of search result parent objects, wherein the data associated with the parent object is stored along with modification dates, wherein the search request further comprises an evaluation date; and wherein the parent object is stored with one or more effective dates, wherein each effective date comprises a past, present or future date; and wherein an effective state of the parent object is determined at the evaluation date by comparing the evaluation date to one or more of the effective dates; ranking the list of search result parent objects according to a ranking function; and providing the ranked list of search result parent objects.