|
SQL Server 2005 で Full Text Search をちょっと調べてるのでメモ 全然まとまっていないし、間違っているかも。 全文検索 → 文を分かち書きして、文節単位にしたものを検索する。 → 例.今日は良い天気ですね。 "今日", "良い", "天気" "は" や "。" はノイズとして検索結果には表れない。 → 同じ単語が大量に偏ると遅くなる?? → テスト中 → ノイズを除去するために検索結果に対してランクを付ける。 → ランク付けのアルゴリズムは非公開。 → どんなものがランクが低くなる? → 高速化のために上位ランクのものを中心に検索させる。 → 検索されない文脈も出てくる。 → インデックスの作成 → 更新直後検索に引っかかる。 → 設定でデータの追跡を ON だと即時反映 → インデックス作成のサイクルを指定できる。 LIKE 検索 → 前後方一致で検索する場合はテーブルのフルスキャンを行う必要がある。 → ノイズ語も検索してしまう。 CONTAINS 検索 → WHERE 区で指定 → ノイズは検索しない → RANK による絞り込みはできない。 CONTAINSTABLE 検索 → 分節単語インデックステーブルから ID と RANK を検索 → JOIN して使用 → ノイズは検索しない → RANK による絞り込みができる。 TODO: SQL Server がどの文脈にしたいしてどのようにランク付けしてるのかが気になる。 どこかにそんな資料がないか調査中。 ノイズに関してもう少し調べる。 そもそも 全文検索 ってそういうもんじゃね?的なものをもう少し調べる 分かち書きの結果文字が偏った場合のパフォーマンスはどうなる? 参考 フルテキスト検索 フルテキスト関数とフルテキスト述語の比較 パフォーマンスのチューニングと最適化 (フルテキスト検索) SQL Server 2005 のフルテキスト検索機能 : 内部構造と強化機能について SQL Server 2005 – フルテキスト検索 |
| << 前記事(2008/03/11) | トップへ | 後記事(2008/03/21)>> |
| タイトル (本文) | ブログ名/日時 |
|---|
| 内 容 | ニックネーム/日時 |
|---|
| << 前記事(2008/03/11) | トップへ | 後記事(2008/03/21)>> |