Sentence と WordIndex の 2 つのテーブルがあります。
文:
id、
テキスト、
wordId
WordIndex:
id、
単語、
文ID
シナリオ:
例:
文表
1、「犬を飛び越えた」、[1,2,3,4,5]
2、「猫をつまずいた」、[6,7,8,9,10]
WordIndex 表
1、「私」、1
2、「ジャンプした」、1
3、「オーバー」、1
4、「ザ」、1
5、「犬」、1
6、「私」、2
7、「つまずいた」、 2
8、「上」、2
9、「ザ」、2
10、「猫」、2
「i」、「jumped」、「over」、「the」、「dog」、「cat」のいずれかの単語のみで構成されるすべての文を検索したいと考えています。
これらの単語のインデックスを検索すると、センテンス #2 が返されますが、これは含まれるべきではありません。
私の考えは、ターゲットの単語と一致しない WordIndex の行を見つけることです。その結果は、私が望まないすべての SentenceId で構成され、私が行うものはありません。次に、その結果にない文の ID を取得します。
問題は、私は MySQL に非常に慣れていないことで、2 つの質問があります。
1) それは望ましい結果を得る最も効率的な方法のように思えますか? 適切にスケーリングするには、これが必要です (数百万のインデックスと数千のターゲット/許可された単語)。
2) そのソリューションを SQL ステートメントにどのように変換しますか?