Typically when implementing a search engine for a digital corpus, one wants to enable discovery not only of occurrences of exact word forms in the query but also of other inflections of the search terms. For example if you search Google for "digital classicism", your results will include Digital Classicist and even though "classicist" is not the exact word "classicism", you may be interested in the result. The same applies even more to highly flective languages such as Greek and Latin (this is, after all, how people are taught to use the dictionaries --- you have to know, or predict, the lemma of a word to be able to look up its meaning and other information on it).
The lemma dictionaries typically connect many occurrences of inflected word forms to their lemma form, and act as a mediator between a query (or the one who asks it) and a database, a corpus, or a text collection.
For Greek and Latin, the foremost freely available lemma dictionaries are included in the Morpheus source as XML files.
A related problem is that of parsing an inflected form, that is of performing a morphological analysis of that word. For example, saying that 'hominis' is genitive singular of lemma 'homo, -inis'. This can aid in lemmatisation because often multiple lemma forms can be inflected to the same inflected form, meaning that looking up the inflected form in a lemma dictionary will yield multiple results for the lemma form. This is why lemmatisation software and online services typically also provide a morphological analysis of the inflected form, so they act both as lemmatisers and parsers.
Disambiguating to the correct lemma form is a difficult problem, and parsing words in context to their correct part of speech can aid in this immensely. One approach is to use software such as TreeTagger trained to your language with a Treebank (such as the Perseus Treebanks).
The Archimedes Project Morphology Service also provides an XML-RPC web interface --- a script which forwards queries to the Morpheus lemmatiser/parser. Such a script can be included in pages of other text collections, enabling lemmatizing searches via a "third-party" service.
Another approach often used for expanding search results is stemming, which typically tries to use an algorithmic approach to normalize inflected words and "chop off" the inflections to produce a "stem" word. An example for Latin is the Schinke Latin Stemmer. The search engine Egothor also has a trainable stemmer component.
Another difficulty in searching a corpus can be orthographic (spelling) variation in the text. For example, Latin has no standard orthography, which for diplomatic transcriptions (where the spelling has not been normalized by the editor, but remains as it is in the text) can mean that the same word may appear spelled differently throughout the corpus. XTF has a good introduction to how they have approached the problem of spelling correction in their search engine (mainly from the perspective of users "mistyping" their query, but the problem is the same).
Numerous services and tools provide for a given ancient text every possible lexico-morphological analysis. Such data is useful in many contexts, especially pedagogical. But such data will include many forms that are, for the context, incorrect. Many scholarly research questions require curated data sets, where lexico-morphological form are eliminated, weighted, or qualified. To curate a lexicon-morphological dataset can be time consuming, but enormously profitable, since it allows one to create sophisticated queries on the data. For example, one could look for instances of asyndeton by looking for successive triples of nouns that are in the same case. Further, such curated data can be used as an auxiliary to refining other sets of lexico-morphological data.
Listed here are published datasets of lexico-morphological data for ancient texts.