Django で作成している Web アプリケーションの単語をすばやく検索する必要があります。単語の各文字を、位置によってインデックス付けされた独自の整数フィールドに入れることを考えていました。
class Word(models.Model):
word = models.CharField(max_length=5)
length = models.IntegerField()
c0 = models.IntegerField(blank=True, null=True)
c1 = models.IntegerField(blank=True, null=True)
c2 = models.IntegerField(blank=True, null=True)
c3 = models.IntegerField(blank=True, null=True)
c4 = models.IntegerField(blank=True, null=True)
mapping = [c0, c1, c2, c3, c4,]
def save(self):
self.length = len(self.word)
for (idx, char) in enumerate(self.word):
self.mapping[idx] = ord(char)
models.Model.save(self)
次にWord.objects.filter(length=4, mapping[2]=ord('A'))
、3 番目の位置に A を持つ長さ 4 のすべての単語を検索するようなクエリを作成できます。
デザインといくつかの仕組みについてはよくわからないので、実装する前にここで提案を求めようと思いました. クエリを作成するための構文については完全にはわかりません。
だから、私は質問が
- デザインについて何か提案はありますか?
- うまくいくでしょうか
mapping[2]
? - 可変数のキーワード引数を持つことができるように、フィルター コマンドに辞書を渡すことはできますか?
ありがとう!