1. A method for implementing a dynamic free-text search database, the method comprising: providing first data for the dynamic free-text search database that represents a first relationship including a first keyword, a first trip, and a first weight value; receiving, by the at least one processor, a plurality of free-text search requests; defining a plurality of potential events that may occur with respect to a travel proposal returned in reply to the free-text search requests based on the first relationship; returning one or more travel proposals for each of the free-text search requests based on the first relationship; recording a number of occurrences of each potential event with respect to the one or more travel proposals returned for the free-text search requests; computing, by the at least one processor, a second weight value for the first relationship based on the number of occurrences, wherein the second weight value differs from the first weight value; and transforming, by the at least one processor, the first data into second data by inserting the second weight value into the first data such that the first relationship includes the second weight value.