フルテキスト検索に使用するストップワードとストップリストの構成と管理Configure and Manage Stopwords and Stoplists for Full-Text Search

適用対象: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

フルテキスト インデックスが肥大化するのを防ぐため、 SQL ServerSQL Server には、頻繁に出現する、検索に役立たない文字列を破棄するメカニズムがあります。To prevent a full-text index from becoming bloated, SQL ServerSQL Server has a mechanism that discards commonly occurring strings that do not help the search. 破棄されるこのような文字列を ストップワードと呼びます。These discarded strings are called stopwords. インデックスの作成中、Full-Text Engine により、フルテキスト インデックスからストップワードが除外されます。During index creation, the Full-Text Engine omits stopwords from the full-text index. つまり、フルテキスト クエリでは、ストップワードが検索されません。This means that full-text queries will not search on stopwords.

ストップワード」を参照してください。Stopwords. ストップワードには、特定の言語で意味を持つ単語を指定できます。A stopword can be a word with meaning in a specific language. たとえば、英語では、"a"、"and"、"is"、"the" などの単語は、検索に役立たないことが知られているため、フルテキスト インデックスから除外されます。For example, in the English language, words such as "a," "and," "is," and "the" are left out of the full-text index since they are known to be useless to a search. また、ストップワードは言語的な意味を持たないトークンでも構いません。A stopword can also be a token that does not have linguistic meaning.

ストップリストStoplists. ストップワードは、ストップリストと呼ばれるオブジェクトを使用してデータベースで管理されます。Stopwords are managed in databases using objects called stoplists. ストップリスト は、フルテキスト インデックスに関連付けられている場合、そのインデックスのフルテキスト クエリに適用されるストップワードの一覧です。A stoplist is a list of stopwords that, when associated with a full-text index, is applied to full-text queries on that index.

既存のストップリストを使用するUse an existing stoplist

次の方法で既存のストップリストを使用できます。You can use an existsing stoplist in the following ways:

  • データベースにシステムによって用意されたストップリストを使用します。Use the system-supplied stoplist in the database. SQL ServerSQL Server には、よく使用されるストップワードを含むシステム ストップリストが、サポート対象の言語ごとに用意されています。つまり、既定で、特定のワード ブレーカーに関連付けられている言語ごとにストップリストが用意されています。ships with a system stoplist that contains the most commonly used stopwords for each supported language, that is for every language associated with given word breakers by default. システム ストップリストをコピーし、ストップワードを追加したり削除したりして、そのコピーをカスタマイズできます。You can copy the system stoplist and customize your copy by adding and removing stopwords.

    システム ストップリストは Resource データベースにインストールされます。The system stoplist is installed in the Resource database.

  • 現在のサーバー インスタンスで他のデータベースの既存のカスタム ストップリストを使用して、適宜、ストップワードを追加および削除します。Use an existing custom stoplist from another database in the current server instance, then add or drop stopwords as appropriate.

新しいストップリストを作成するCreate a new stoplist

Transact SQL で新しいストップリストを作成するCreate a new stoplist with Transact-SQL

CREATE FULLTEXT STOPLIST を使用します。Use CREATE FULLTEXT STOPLIST.

Management Studio で新しいストップリストを作成するCreate a new stoplist with Management Studio

  1. オブジェクト エクスプローラーで、サーバーを展開します。In Object Explorer, expand the server.

  2. [データベース] を展開し、フルテキスト ストップリストを作成する対象のデータベースを展開します。Expand Databases, and then expand the database in which you want to create the full-text stoplist.

  3. [ストレージ] を展開し、 [フルテキスト ストップリスト] を右クリックします。Expand Storage, and then right-click Full-Text Stoplists.

  4. [新しいフルテキスト ストップリスト] をクリックします。Select New Full-Text Stoplist.

  5. 新しいストップリストの名前を入力します。Enter your new stoplist's name.

  6. 必要に応じて、他のユーザーをストップリストの所有者として指定します。Optionally, specify someone else as the stoplist owner.

  7. 次に示すストップリスト作成オプションのいずれかを選択します。Select one of the following create stoplist options:

    • [空のストップリストを作成する]Create an empty stoplist

    • [システム ストップリストから作成する]Create from the system stoplist

    • [既存のフルテキスト ストップリストから作成する]Create from an existing full-text stoplist

    詳細については、「新しいフルテキスト ストップリスト ([全般] ページ)」を参照してください。For more information, see New Full-Text Stoplist (General Page).

  8. [OK] をクリックします。Click OK.

フルテキスト クエリでのストップリストの使用Use a stoplist in full-text queries

クエリでストップリストを使用するには、ストップリストをフルテキスト インデックスに関連付ける必要があります。To use a stoplist in queries, you must associate it with a full-text index. インデックスの作成時にストップリストをフルテキスト インデックスにアタッチしたり、後でインデックスを変更してストップリストを追加したりできます。You can attach a stoplist to a full-text index when you create the index, or you can alter the index later to add a stoplist.

フルテキスト インデックスを作成してストップリストを関連付けるCreate a full-text index and associate a stoplist with it

CREATE FULLTEXT INDEX (Transact-SQL) を使用します。Use CREATE FULLTEXT INDEX (Transact-SQL).

既存のフルテキスト インデックスに対してストップリストの関連付けまたは関連付け解除を行うAssociate or disassociate a stoplist with an existing full-text index

ALTER FULLTEXT INDEX (Transact-SQL) を使用します。Use ALTER FULLTEXT INDEX (Transact-SQL).

ストップリストのストップワードの変更Change the stopwords in a stoplist

Transact-SQL でストップリストからストップワードを追加または削除するAdd or drop stopwords from a stoplist with Transact-SQL

ALTER FULLTEXT STOPLIST (Transact-SQL) を使用します。Use ALTER FULLTEXT STOPLIST (Transact-SQL).

Management Studio でストップリストからストップワードを追加または削除するAdd or drop stopwords from a stoplist with Management Studio

  1. オブジェクト エクスプローラーで、サーバーを展開します。In Object Explorer, expand the server.

  2. [データベース] を展開し、データベースを展開します。Expand Databases, and then expand the database.

  3. [ストレージ] を展開し、 [フルテキスト ストップリスト] をクリックします。Expand Storage, and then select Full Text Stoplists.

  4. プロパティを変更するストップリストを右クリックし、 [プロパティ] をクリックします。Right-click the stoplist whose properties you want to change, and select Properties.

  5. [フルテキスト ストップリストのプロパティ] ダイアログ ボックスで:In the Full-Text Stoplist Properties dialog box:

    1. [アクション] リスト ボックスで、次のいずれかのアクションを選択します。 [ストップワードの追加][ストップワードの削除][Delete all stopwords](すべてのストップワードの削除) 、または [ストップリストのクリア]In the Action list box, select one of the following actions: Add stopword, Delete stopword, Delete all stopwords, or Clear stoplist.

    2. 選択したアクションに対して [ストップワード] ボックスが有効になっている場合は、単一のストップワードを入力します。If the Stopword text box is enabled for the selected action, enter a single stopword. このストップワードは一意である必要があります。つまり、選択した言語で、このストップリストにまだ含まれていないものである必要があります。This stopword must be unique; that is, not yet in this stoplist for the language that you select.

    3. 選択したアクションに対して [フルテキスト言語] ボックスの一覧が有効になっている場合は、言語を選択します。If the Full-text language list box is enabled for the selected action, select a language.

  6. [OK] をクリックします。Click OK.

ストップ リストとその使用の管理Manage stoplists and their usage

ストップリスト内のすべてのストップワードの表示View all the stopwords in a stoplist

sys.fulltext_stopwords (Transact-SQL) を使用します。Use sys.fulltext_stopwords (Transact-SQL).

現在のデータベース内にあるすべてのストップリストに関する情報を取得するGet info about all the stoplists in the current database

sys.fulltext_stoplists (Transact-SQL)sys.fulltext_stopwords (Transact-SQL) を使用します。Use sys.fulltext_stoplists (Transact-SQL) and sys.fulltext_stopwords (Transact-SQL).

ワード ブレーカー、類語辞典、ストップリストの組み合わせによるトークン化の結果を表示するView the tokenization result of a word breaker, thesaurus, and stoplist combination

sys.dm_fts_parser (Transact-SQL) を使用します。Use sys.dm_fts_parser (Transact-SQL).

ストップワードが原因でフルテキスト クエリのブール演算が失敗する場合に、エラー メッセージを非表示にするSuppress an error message if stopwords cause a Boolean operation on a full-text query to fail

transform noise words サーバー構成オプション を使用します。Use the transform noise words Server Configuration Option.

ストップ ワードの位置に関する詳細情報More info about stopword position

含まれるストップワードは無視されますが、フルテキスト インデックスではその位置が考慮されます。Although it ignores the inclusion of stopwords, the full-text index does take into account their position. たとえば、"Instructions are applicable to these Adventure Works Cycles models" という句があるとします。For example, consider the phrase, "Instructions are applicable to these Adventure Works Cycles models". 以下のテーブルは、句の中の語の位置を表しています。The following table depicts the position of the words in the phrase:

WordWord [位置]Position
InstructionsInstructions 11
areare 22
applicableapplicable 33
からto 44
thesethese 55
AdventureAdventure 66
WorksWorks 77
CyclesCycles 88
モデルmodels 99

位置 2、4、および 5 にあるストップワード "are"、"to"、"these" は、フルテキスト インデックスから除外されます。The stopwords "are", "to", and "these" that are in positions 2, 4, and 5 are left out of the full-text index. ただし、その位置情報は保持されるため、語句内の他の語の位置は変わりません。However, their positional information is maintained, thereby leaving the position of the other words in the phrase unaffected.

SQL Server 2005 からのノイズ ワードのアップグレードUpgrade noise words from SQL Server 2005

SQL Server 2005 (9.x)SQL Server 2005 (9.x) のノイズ ワードは、ストップワードになりました。noise words have been replaced by stopwords. データベースが SQL Server 2005 (9.x)SQL Server 2005 (9.x)からアップグレードされると、ノイズ ワード ファイルは使用されなくなります。When a database is upgraded from SQL Server 2005 (9.x)SQL Server 2005 (9.x), the noise-word files are no longer used. ただし、ノイズ ワード ファイルは FTDATA\ FTNoiseThesaurusBak フォルダーに保存され、後で更新する際、または対応するストップリストを作成する際に使用できます。However, the noise-word files are stored in the FTDATA\ FTNoiseThesaurusBak folder, and you can use them later when updating or building the corresponding stoplists. ノイズ ワード ファイルをストップリストにアップグレードする方法の詳細については、「 フルテキスト検索のアップグレード」を参照してください。For information about upgrading noise-word files to stoplists, see Upgrade Full-Text Search.