A system for indexing documents comprising: a configuration snapshot module configured to take snapshots of configuration files of a software product or computer system and generate example knowledge based documents, wherein the snapshots are stored in a knowledge base database; a preprocessing component configured to preprocess a document to create a preprocessed document being converted to a plain text format, wherein any HTML tags or other embedded content is removed; an analyzer configured to process the preprocessed document to generate a token stream comprising a plurality of tokens for the document, wherein tokens are created from words or groupings of words in the document, the tokens being used for indexing or searching of the document, wherein the plain text is converted into smaller atomic units, wherein the tokens in the token stream are passed through at least one filter to build an enhanced token stream, wherein the analyzer further comprises a value type filter configured to: identify from the tokens a value type associated with the token, the value types comprising numerals, true/false and version numbers; and insert a token for numeric or boolean into the token stream at a position corresponding to the identified value type associated with the token; an indexer configured to add the enhanced token stream to the document, the enhanced token stream being associated with the document as an index for the document, the index providing a mapping for each document in the knowledge base database to a list of associated features for the document; and the knowledge base database configured to store the index for the document, wherein the snapshots are processed and indexed in the same manner as the document. a configuration snapshot module configured to take snapshots of configuration files of a software product or computer system and generate example knowledge based documents, wherein the snapshots are stored in a knowledge base database; a preprocessing component configured to preprocess a document to create a preprocessed document being converted to a plain text format, wherein any HTML tags or other embedded content is removed; an analyzer configured to process the preprocessed document to generate a token stream comprising a plurality of tokens for the document, wherein tokens are created from words or groupings of words in the document, the tokens being used for indexing or searching of the document, wherein the plain text is converted into smaller atomic units, wherein the tokens in the token stream are passed through at least one filter to build an enhanced token stream, wherein the analyzer further comprises a value type filter configured to: identify from the tokens a value type associated with the token, the value types comprising numerals, true/false and version numbers; and insert a token for numeric or boolean into the token stream at a position corresponding to the identified value type associated with the token; identify from the tokens a value type associated with the token, the value types comprising numerals, true/false and version numbers; and insert a token for numeric or boolean into the token stream at a position corresponding to the identified value type associated with the token; an indexer configured to add the enhanced token stream to the document, the enhanced token stream being associated with the document as an index for the document, the index providing a mapping for each document in the knowledge base database to a list of associated features for the document; and the knowledge base database configured to store the index for the document, wherein the snapshots are processed and indexed in the same manner as the document.