1. A computer implemented method for indexing and retrieving documents in a database, comprising: the steps of: converting each document in a collection of documents to a document particle graph, the document graph including particles selected from a set of the particles; extracting, for each document, a set of document keys from the corresponding particle graph; storing the document keys for each document in an index to a database storing the collection of documents; converting a query to a query particle graph including a set of query particles, the query graph including particles selected from the set of the particles; extracting a set of query keys from, the query particle graph; retrieving relevant documents from the database according to the query keys and the document keys stored in the index; and outputting the relevant documents to a user.