i am developing a dictionary website with various languages, and i can translate everyone of this langauges to every other language, i am currently using mySQL and if i want to translate english to chinese for example, i have a table "en_ch" that has all words with the translation in it, each table has about 90.000 - 150.000 entries. so mySQL is rather slow and it is also hard to map all of the properties, one translation can have meta information, for example europa could mean the continent or a moon of jupiter, so i have a type tag which can be 'Geo' 'astro' 'med' etc. ...also users can rate if a translation is good or bad and one word in one language can have several translations in an other language, or maybe just one, if i use database normalization, things get really slow if I query on the meta infos.

So I think that using a NoSQL databse might have some benefits over RDBMS. the thing is.. I don't really know much about NoSQL, I never used it before, so I am here to ask if there is some sort of best practice for what I am doing or if this is even a good idea.

If I used mongoDB, i would create a document for each translation (/english -> german / german -> chinese / ..) and save each translation as a list, where the key is the first language and the values are the translations, also I think it is possible to give each value properties like mentioned above (right?)

Would this be the best way to do this?

Would queries be faster than in mySQL?

Question author Joschua011 | Source



Most likely, your best tool already exists, and it is called dict, the dictionary server, client and assorted dictionaries and tools.

There is also a the rfc 2229 that defines the dict protocol. Those tools (servers, clients and converters) are usually packaged and found in most Linux distributions.

Please, take a look at http://www.dict.org/ for more info.

Answer author Ferran-jorba

Ask about this question here!