[前][次][番号順一覧][スレッド一覧]

mysql:7567

From: Shinya Kawaji <Shinya Kawaji <kawaji@xxxxxxxxxx>>
Date: Sun, 20 Apr 2003 04:59:16 +0900
Subject: [mysql 07567] Re: 文書検索のためのテーブル設計

かわじ、です。


> まず、次のようなテーブルが用意されています。
> 
> #----------------#
> 文書ID   -   単語
> 1   -   今日
> 1   -   は
> 1   -   良い
> 1   -   天気
> 1   -   だ
> 1   -   。
> 2   -   明日
> 2   -   は
> 2   -   どう
> 2   -   かな
> #----------------#
> 
> 実現したいことは、単語による文書の検索です。
> 例えば、「今日 or 明日 >= 2」という検索式を入力して、「今日」が含まれ
> ているか、「明日」が2つ以上含まれている文書を検索するといった具合です。

上記のテーブルに、頻度(frequency) の項目を加えたものを作成するという手も。

サンプルの文書
  1:「今日は良い天気だ」
  2:「明日はどうかな」
  3:「明日は明日の風が吹く」

mysql> select * from test order by id;
+------+------+-----------+
| id   | word | frequency |
+------+------+-----------+
|    1 | 今日 |         1 |
|    1 | は   |         1 |
|    1 | 良い |         1 |
|    1 | 天気 |         1 |
|    1 | だ   |         1 |
|    1 | 。   |         1 |
|    2 | 明日 |         1 |
|    2 | は   |         1 |
|    2 | どう |         1 |
|    2 | かな |         1 |
|    3 | 明日 |         2 |
|    3 | は   |         1 |
|    3 | の   |         1 |
|    3 | 風   |         1 |
|    3 | が   |         1 |
|    3 | 吹く |         1 |
+------+------+-----------+
16 rows in set (0.00 sec)

mysql> select id from test
    ->   where word = '今日' or (word = '明日' and frequency >= 2)
    ->   order by id;
+------+
| id   |
+------+
|    1 |
|    3 |
+------+
2 rows in set (0.00 sec)


# 一般的に言って、ML宛のメールに Reply-To は不要です。



[前][次][番号順一覧][スレッド一覧]

      7566 2003-04-20 04:16 ["HIGUCHI Koichi" <ko] 文書検索のためのテーブル設計            
->    7567 2003-04-20 04:59 ┣[Shinya Kawaji <kawaj]                                       
      7568 2003-04-20 05:07 ┣[Shogo <shogo@xxxxxxx]                                       
      7569 2003-04-20 06:51 ┣["KAWAI,Takanori" <GC]                                       
      7570 2003-04-20 09:40 ┗["HIGUCHI Koichi" <ko]