Why do you think that your requirements should lead you to effective dictionary application?
I while ago I happened to develop my own dictionary software supporting XDXF dictionary format (
http://xdxf.revdanica.com/drafts/[
^]), so I know then this class of software has specific problems which need some special techniques to make dictionary application flexible yet providing sufficient performance.
Having a typical dictionary volume of some tens of megabytes and several hundreds of megabytes for big dictionaries makes loading of the dictionary and search in the dictionary a performance bottleneck.
Re-direction of a request as a whole word make the usage of the dictionary very limited. A user of the dictionary may be not sure about spelling and my need to see several similar words at the same time, as it happens when one uses a dictionary printed on paper. I type first, second and next letters in the input string and see the list of the closest words which looks like a "window" in a whole dictionary. Of course, this list is virtual and is populated on the fly depending on typed letters. Also, it needs unlimited cross-references: every word clicked in the control showing dictionary article should find this word in the dictionary with the same effect — list of closest keys.
Anyway, in you want to have dictionary functionality in two processes (UI is a separate process, and the dictionary itself can be a remote process), you cannot talk about "re-direction" but rather about client-server model, presumably served through TCP. The application protocol should be stateful and remember the user status for the purpose of incremental search described above.
Now, about the server part of such application. The problem of quick search in the dictionary led me the the design of special compact binary presentation of a dictionary (I optionally can convert from XDXF) with index section. The positions in the stream are indexed by several few letters of each key. The size of the dictionary dictates that only an index portion is kept in memory. The file with the dictionary is kept open, the indexing mechanism calculates the position in the stream to start reading from. This mechanism make the speed of search (again, when each entered or modified letter updates the window of of list of keys and selection displays the article on the selected key) very fast, with the lag absolutely undetectable by a human eye.
—SA