0

全文索引を使用せずに可能ですか、キーワードに基づいて巨大なテーブルを検索できますか?

用語を検索したいのですが、Country man working次の結果が返されます。

  1. 田舎の男が働き始めた
  2. 失敗の瀬戸際にある国
  3. 男は仕事を始めた
4

2 に答える 2

1

ノイズのある単語を除いた、辞書内のすべての単語を含むテーブルを作成します。

辞書キーワードテーブルをデータテーブルにリンクするテーブルを作成します

検索するテーブルのテキスト列に辞書の単語が表示されるリンクテーブルにレコードを作成するコードを記述します。

次に、次のように少し検索できます。

SELECT T.TextStuff
FROM KeywordTable AS K
JOIN LinkTable AS L ON L.KeywordID = K.KeywordID
JOIN TableToSearch AS T ON T.KeyWordID = L.KeywordID
WHERE K.Keyword = 'Country'
OR K.Keyword = 'man'
OR K.Keyword = 'working'

これは疑似コードにすぎませんが、うまくいけば、そのアイデアが実証されるでしょう。セットアップには時間がかかりますが、LIKEを大量に実行するよりもパフォーマンスが優れているはずです。

要約すると、行ごとに1つの単語があり、リンクテーブルで検索したい単語と一致するテーブルを調べ、そこから元のテーブルのレコードに到達できます。

于 2012-04-18T15:11:15.010 に答える
0

これにより、必要な結果が返されます。

SELECT *
FROM TABLE
WHERE Field LIKE '%country%'
OR Field LIKE '%man%'
OR Field LIKE '%working%'

速度の保証はありませんが...


コメントからのメモ - これは実際にはこれを行う方法ではありません。全文索引作成は使用するアプローチですが、それがオプションではない理由について詳しく説明していません。

于 2012-04-18T09:53:04.180 に答える