Een mogelijkheid zou zijn om alle varianten op te slaan waarvan je denkt dat ze nuttig kunnen zijn als een array-element - ik weet echter niet of dat mogelijk is!
{
"number" : "pl",
"surface_form" : "skrejjen",
"surface_forms: [ "skrej", "skre" ],
"phonetic" : "'skrɛjjɛn",
"pattern" : "CCCVCCVC"
}
Ik zou waarschijnlijk ook willen voorstellen om geen 1000 woordvormen bij elk woord op te slaan, maar dit om te draaien om kleinere documenten te hebben. Hoe kleiner uw documenten, hoe minder MongoDB voor elke zoekopdracht in het geheugen hoeft in te lezen (zolang de zoekvoorwaarden natuurlijk geen volledige scan vereisen):
{
"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"
}
Ik betwijfel ook of MySQL hier beter zou presteren met zoekopdrachten naar willekeurige woordvormen, omdat het een volledige tabelscan zal moeten doen, net zoals MongoDB zou zijn. Het enige dat daar zou kunnen helpen, is een querycache - maar dat is iets dat u natuurlijk vrij eenvoudig in uw zoek-UI/API in uw toepassing kunt inbouwen.