自然言語データベースの MongoDB スキーマ設計についてアドバイスが必要です。
次のような各言語のテキストと単語を保存する必要があります。
lang: {
_id: "English",
texts : [
{ text : "This is a first text",
date : Date("2011-09-19T04:00:10.112Z"),
tag : "test1"
},
{ text : "Second One",
date : Date("2011-09-19T04:00:10.112Z"),
tag : "test2"
}
],
words : [
{
word : "This",
},
{
word : "is",
},
{
word : "a",
},
{
word : "first",
},
{
word : "text",
},
{
word : "second",
},
{
word : "one",
}
]
}
次に、ユーザーが関連付けた各単語とテキストを知る必要があります。単語/テキストの量は膨大になる傾向があり、ある言語のすべての単語と、ユーザーがその言語に関連付けたすべての単語をリストする必要があります。
私の観点からは、特定の単語に関連付けられている user_ids をその単語の配列に格納することは、次のような良いアプローチだと思います。
lang: {
_id: "English",
texts : [
...
],
words : [
{
word : "This",
users: [user1,user2,user3]
},
{
word : "is",
users: [user1,user2]
},
...
]
}
単語は何十万ものユーザーに関連付けることができ、ドキュメントの制限 (私が読んだように) は 4MB であり、次のことを行う必要があることを念頭に置いてください。
- 特定のユーザーと言語のすべての単語を一覧表示する
これは良いアプローチですか?それとももっと良いものを考えられますか?
この質問が十分に明確であり、誰かがこれについて私に助けてくれることを願っています;)
皆さん、ありがとうございました!