0

簡単な説明:

私の本には文であるテキストの列が1つあります。単語 AXC または XBC または ABX (X は任意の単語) を含むすべての文を見つける方法。

これが必要な理由: 詳細な説明

雑学ゲームを作っています。私は自分のデータベースで本を手に入れました。単語を完成させる必要がある場所で質問を生成しています。だから私はランダムな文を選択し、そこからランダムな単語を削除しています. この言葉が今の答えです。そして、ユーザーに 3 つのランダムなオプションから選択できるようにしたいと考えています。そうするために、私は自分の本で次のような類似の単語を検索したいと考えています。

私の文が ABC で、欠落している単語が B であるとしましょう。B ではなく、単語 A と C の間にある私の本の X 個の単語をすべて見つけたいとします。または、欠落している単語が A であるとしましょう。 A ではなく、単語 A の後に私の本にあるすべての X 単語を見つけます。C についても同じです。

私の本の中に is という文を含むテキストの列が 1 つあります。

4

1 に答える 1

0

あなたが望むことをする単一のメカニズムはありません. LIKEorを使用しGLOBてテーブル全体をスキャンするのはおそらく遅すぎます.

全文検索を使用して、欠落している単語の前後に 2 つの文の断片があるレコードを探してみてください。これらのフラグメントはほぼ隣接している必要があるため、次のNEAR演算子を使用します。

SELECT docid
FROM FtsTable
WHERE FtsTable MATCH '"a long time ago in a" NEAR/1 "far far away"'

これにより、2 つの文のフラグメントの間に単語がないレコードや、フラグメントの順序が間違っているレコードが検出されるため、コードで結果をフィルタリングする必要があります。

于 2013-06-10T08:03:27.773 に答える