この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 10896|答える: 0

[出典] SQL Server 2008の全文検索に関する知識

[リンクをコピー]
掲載地 2015/10/04 21:03:04 | | |
1. いくつか良い投稿を読みました。

SQL Server 2008 全文検索概要 http://www.cnblogs.com/galaxyyao/archive/2009/02/13/1390139.html

全文索引 http://www.cnblogs.com/liulun/articles/1368655.html


まず、段落をコピーしてください:

Q: なぜ全文検索なのですか?
A: テキストのクエリ速度が遅いため(テキストにインデックスを作成することは推奨されていません)、
Q: 2005年と違いはありますか?
ある; もちろん違いがあり、名前の前にintegratedがついています。 以前は05では別のインデックスファイルとエンジンがありましたが、08年にはファイルグループに統合されました。
Q: 原則は何ですか?
A: キーワードに基づく
Q: 通常の指数とどのように関係していますか?
A: 目的はクエリの速度を向上させることです。 全文索引は索引と多くの共通点を持っています
    全文検索は意味検索(この技術は非常に深遠に聞こえます)を用い、バイナリ文書にも利用できます。
Q: 何のためのものなんですか?
A: 最も簡単な例を挙げると、論文検索、ファジィマッチング、高速・大量の検索も順位付けできます。



2。 それからMSDNで東東を見てみましょう:

全文索引概要
http://msdn.microsoft.com/zh-cn/library/cc879306.aspx



以下の引用の一部を以下のように引用します。

1. SQL Server 2008では、全文エンジンがデータベースエンジンに完全に統合されています。 全文エンジンは別のプロセス(msftesql.exe)ではなく、SQL Serverプロセス(sqlservr.exe)に存在します。 全文エンジンをデータベースエンジンに統合することで、全文の管理性が向上し、ハイブリッドクエリが最適化され、全体的なパフォーマンスが向上します。 差出人:http://msdn.microsoft.com/zh-cn/library/ms142587.aspx

2. 全文検索の作成手順。スクリーンショットを撮るのが面倒で、他の人がやっているか確認し、直接引用するのが面倒ですが、2ページ目からはローカル検索とは違います。テーブルを直接右クリックして全文検索を作成できず、デフォルトはグレーで、ストレージ内の全文インデックスディレクトリカタログでしかインデックスを作成できません。  http://www.sql-server-performance.com/2010/full-text-search-2008/

3. 最初は、全文検索ディレクトリは対応するハードディスク上のディレクトリであるべきだと考えました。これはlocuneの概念に似ています。 しかし実際には、SQL Server 2008以降、全文ディレクトリは仮想オブジェクトであり、どのファイルグループにも属していません。 全文目次とは、全文索引の集合を表す論理的な概念です。 出典:
http://msdn.microsoft.com/zh-cn/library/ms142497.aspx

4. テーブルやインデックスビューには全文インデックスしか作成できませんが、通常のビューには全文インデックスは作成できません。

全文索引は、全文エンジンによって生成・維持される、特別なタイプのマーカーベースの機能的インデックスです。 テーブルやビューに対して全文検索を作成するには、そのテーブルやビューが一意でnullableでない単一列のインデックスを持つ必要があります。 全文エンジンはこの一意のインデックスを使って、テーブル内の各行を一意の圧縮可能なキーにマッピングする必要があります。 全文索引には、Char、Varchar、Nchar、Nvarchar、Text、Ntext、Image、XML、Varbinary、Varbinary(max)の各列が含まれます。

5. 表Aに全文索引を作成するには前提があります。すなわち、表Aに少なくとも一意の索引が必要であり、表Aに索引がなければ全文索引を作成したくないということです。

6.SQL Server 2008では、全文インデックスのサイズはSQL Serverインスタンスを実行しているコンピュータの利用可能なメモリリソースのみに制限されています。 http://msdn.microsoft.com/zh-cn/library/cc879306.aspx

7. 複数列のクエリ(全文検索)
検索する列のリストを指定することで、CONTAINS 述語を使って複数の列をクエリできます。 これらの列は同じテーブルから出ていなければなりません。

括弧を使い、SELECT名、色:Production With((Name, Color))を含みます。Product WHERE COMTAINS((Name, Color))「Red」;

または*記号、SELECT名、Color FROM Production.Product WHERE(*, 'Red')を使います。

出典:http://msdn.microsoft.com/zh-cn/library/ms142488.aspx

9. 複数のテーブルに対して複数の列をクエリする

CONTAINSはCONTAINSのみで、例えばWHERE CONTAINS(t1. 名前は「赤」またはCONTAINS(t2)。 名前は「レッド」です。

10. 全文クエリのパフォーマンス最適化

全文カタログを再編成するには、ALTER FULLTEXT CATALOG REORGANYを使ってください。

全文カタログの顧客再構築をACCENT_SENSITIVITY=OFFで変更してください

詳しくはこちらをご覧ください:http://msdn.microsoft.com/zh-cn/library/cc879244.aspx

11. プレフィックスサーチを実行する http://msdn.microsoft.com/zh-cn/library/ms142492.aspx

全文検索を使って、指定された接頭辞の単語やフレーズを検索できます。

プレフィックス検索を行うと、指定されたプレフィックスで始まるテキストを含む列内のすべての項目が返されます。 例えば、topの接頭辞を含むすべての行(topple、topping、top自体など)を検索する場合、クエリは次のようになります。

SELECT * FROM Product WHERE CONTAINS (ProductName, '"auto*"')
アスタリスク(*)の前に指定されたテキストと一致するすべてのテキストは返されます。

注意:テキストとアスタリスクの前後に二重引用符を付けない場合(例:CONTAINS (DEscrip{filter}tION, 'top*'))、全文検索ではアスタリスクをワイルドカードとして使いません。

接頭辞がフレーズの場合、そのフレーズを構成する各トークンは別々のプレフィックスとして扱われます。 これらの接頭辞で始まる単語を含むすべての行は返されます。 例えば、「light bread*」という接頭辞は「light breaded」「lightly breaded」「light bread」といった文の行を探しますが、「Lightly toasted bread」は返しません。





先の:ジャッキー・チャンの広東語の曲で、なかなか気持ちいいです
次に:江蘇省連雲岡の少女がトイレでシャツを脱がされ、激しく殴られた
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com