データベースのすべてのテキスト設定オブジェクト、およびその設定に関するリストについては、SYSTEXTCONFIG システムビューを問い合わせてください (例:SELECT * FROM SYSTEXTCONFIG
)。
テキスト設定オブジェクトで文字列がどのように単語に分割されるかは、sa_char_terms and sa_nchar_terms システムプロシージャを使用してテストできます。
SQL Anywhere には、NCHAR データに使用する 「default_nchar」、および非 NCHAR データに使用する 「default_char」 という、2 つのデフォルトのテキスト設定オブジェクトがあります。これらの設定は、テキスト設定オブジェクトやテキストインデックスを初めて作成する際に作成されます。
インストール時における default_char と default_nchar の設定を以下の表に示します。これらの設定は、ほとんどの文字ベースの言語で最適であるという理由で選択されています。デフォルトのテキスト設定オブジェクトの設定を変更しないことを強くおすすめします。
設定 | インストールされる値 |
---|---|
TERM BREAKER |
0 (GENERIC) |
MINIMUM TERM LENGTH | 1 |
MAXIMUM TERM LENGTH | 20 |
STOPLIST | (空) |
デフォルトのテキスト設定オブジェクトを削除すると、テキストインデックスやテキスト設定オブジェクトを次回作成する際に自動的に作成されます。
データベースサーバによってデフォルトのテキスト設定オブジェクトが作成されると、日付値と時刻値が文字列に変換される方法に影響を与えるデータベースオプションは、現在の設定からテキスト設定オブジェクトに保存されます。
次の表は、さまざまなテキスト設定オブジェクトの設定、インデックス付けされる対象に与える影響、および全文クエリ文字列の解釈方法を示したものです。すべての例で、文字列 'I'm not sure I understand'
を使用しています。
設定 | インデックス付けされる単語 | クエリ解釈 |
---|---|---|
TERM BREAKER GENERIC MINIMUM TERM LENGTH 1 MAXIMUM TERM LENGTH 20 STOPLIST '' |
|
元の文字列の 'not' は 'not' というワードではなく、演算子として解釈されます。 |
TERM BREAKER GENERIC MINIMUM TERM LENGTH 2 MAXIMUM TERM LENGTH 20 STOPLIST 'not and' |
|
not' はフレーズ "i am" と "sure" の間の演算子 (AND NOT) として解釈されるため、'sure' は削除されます。フレーズ "i am" には短すぎて削除される単語が含まれているため、AND NOT 条件 ('sure') の右側も削除されます。これにより、'understand' のみが残ります。 |
TERM BREAKER NGRAM MAXIMUM TERM LENGTH 3 STOPLIST 'not and' |
|
あいまい検索の場合:
|
TERM BREAKER GENERIC MINIMUM TERM LENGTH 1 MAXIMUM TERM LENGTH 20 STOPLIST 'not and' |
|
|
TERM BREAKER NGRAM MAXIMUM TERM LENGTH 20 STOPLIST 'not and' |
20 文字以上の単語がないため、インデックス付けされるものはありません。 これは、MAXIMUM TERM LENGTH の GENERIC テキストインデックスへの影響と NGRAM テキストインデックスへの影響が異なることを示しています。NGRAM テキストインデックスの場合、MAXIMUM TERM LENGTH は、テキストインデックスに挿入される N-gram の長さを設定します。 |
クエリ文字列から 20 文字の N-gram を構成できないため、検索を実行すると空の結果セットが返されます。 |
次の表は、テキスト設定オブジェクトの文字列の設定がどのように解釈されるかについて、例を示したものです。
解釈される文字列の列にあるカッコ内の数字は、各単語の位置情報を表しています。この数字は、説明の目的でマニュアルに記載されています。格納される実際の単語にはカッコ内の数字は含まれません。
設定 | 文字列 | 解釈される文字列 |
---|---|---|
TERM BREAKER GENERIC MINIMUM TERM LENGTH 3 MAXIMUM TERM LENGTH 20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TERM BREAKER NGRAM MAXIMUM TERM LENGTH 3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TERM BREAKER NGRAM MAXIMUM TERM LENGTH 3 SKIPPED TOKENS IN TABLE AND IN QUERIES |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |