En mulighed ville være at gemme alle de varianter, som du tænker kan være nyttige som et array-element - dog ved ikke om det er muligt!
{
"number" : "pl",
"surface_form" : "skrejjen",
"surface_forms: [ "skrej", "skre" ],
"phonetic" : "'skrɛjjɛn",
"pattern" : "CCCVCCVC"
}
Jeg vil nok også foreslå ikke at gemme 1000 ordformer med hvert ord, men vende dette om for at have mindre dokumenter. Jo mindre dine dokumenter er, jo mindre vil MongoDB skulle læse ind i hukommelsen for hver søgning (så længe søgebetingelserne selvfølgelig ikke kræver en fuld scanning):
{
"word": {
"pos" : "N",
"lemma" : "skrun",
"gloss" : "screw",
},
"form" : {
"number" : "sg",
"surface_form" : "skrun",
"phonetic" : "ˈskruːn",
"gender" : "m"
},
"source" : "Mayer2013"
}
{
"word": {
"pos" : "N",
"lemma" : "skrun",
"gloss" : "screw",
},
"form" : {
"number" : "pl",
"surface_form" : "skrejjen",
"phonetic" : "'skrɛjjɛn",
"pattern" : "CCCVCCVC"
},
"source" : "Mayer2013"
}
Jeg tvivler også på, at MySQL ville klare sig bedre her med søgninger efter tilfældige ordformer, da det skal lave en fuld tabelscanning ligesom MongoDB ville være. Det eneste, der kunne hjælpe der, er en forespørgselscache - men det er noget, du kan bygge i din søge-UI/API i din applikation, selvfølgelig.