ホームページ  >  記事  >  データベース  >  全文検索の応用(3)

全文検索の応用(3)

黄舟
黄舟オリジナル
2016-12-17 15:02:151065ブラウズ

CONTAINSTABLE 構文
通常、次のように FROM 句で CONTAINSTABLE を使用します: SELECT * FROM テーブル名,CONTAINTABLE(全文表,全文列,'検索条件') WHERE ……。

CONTAINSTABLE はクエリメソッドの点では CONTAINS とほぼ同じなので、詳細に説明する必要はありません。汚染可能 返されるのはクエリ条件を満たすテーブルであり、SQL ステートメントで通常のテーブルとして使用できます。

これら 2 つのテーブルの違いを比較する例を見てみましょう。
選択 FT_TBL.student_name,FT_TBL.student_score,KEY_TBL.RANK
レポート AS FT_TBL INNER JOIN
CONTAINSTABLE( 学生, 住所,
'ISABOUT (都市の体重) (.8)、郡ライト (.4))' ) AS KEY_TBL
ON FT_TBL.student_id = KEY_TBL.[KEY]
KEY_TBL.RANKで注文
CONTAINSTABLE 返されたテーブルには、KEY、RANK という 2 つの特別な列が含まれています。
最初の部分では、全文インデックスが作成されるテーブルには一意のインデックスが必要であることを強調しました。この一意のインデックス列は次のようになります。 鍵。通常、テーブル結合の条件として使用します。

一部のWebサイトで検索すると、結果に一致度を示す数字「RANK」が表示されます。 これと同じようなものです。値は 0 ~ 1000 で、各行がクエリ条件に一致する度合いを示します。通常、RANK の値は降順に並べられます。
フリーテキスト 構文
FREETEXT は CONTAINS に似ていますが、CONTAINS ほど正確ではありません。 CONTAINSではクエリ条件の書き方に多くの要件があり、 FREETEXT は存在しません。任意の単語、フレーズ、文を使用できます。以下の例を見てください:
SELECT カテゴリ名
FROM カテゴリ
自由テキスト (説明、 「最も甘いキャンディーのパンと乾燥した肉」 )

FREETEXTTABLE 構文
と CONTAINSTABLE 同様に、FREETEXTTABLE は KEY、RANK を含むテーブルを返します。例:
SELECT FT_TBL.CategoryName,
FT_TBL.Description,
KEY_TBL.RANK
カテゴリから FT_TBL INNER JOIN
FREETEXTTABLE(カテゴリ、説明、
'最も甘いキャンディー) パンと乾燥肉') AS KEY_TBL
ON FT_TBL.CategoryID = KEY_TBL.[KEY]
at ASP で全文検索を使用する
Dim cnn
Dim rs
Dim strSQL

strSQL = "SELECT book_name " &_
" "FROM 本 " &_
"WHERE CONTAINS( description, '" & Request("search_condition") & "' )"

Set cnn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")

cnn.Open "PROvider=sqloledb;datasource=.;initial カタログ=書籍;ユーザーID=sa;pasWord=;"
rs.Open strSQL,cnn


上記の例は非常に単純であり、説明のみを目的としています。 CONTAINS と CONTAINSTABLE の構文をマスターすれば、使い方は一般的な構文と同じです。 ADO クエリと同じです。

上記は全文検索アプリケーション (3) の内容です。その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。