テキスト設定オブジェクトを変更します。
ALTER TEXT CONFIGURATION [ owner.]config-name STOPLIST stoplist-string | DROP STOPLIST | { MINIMUM | MAXIMUM } TERM LENGTH integer | TERM BREAKER { GENERIC [ EXTERNAL NAME external-call ] | NGRAM } | PREFILTER EXTERNAL NAME external-call | DROP PREFILTER | SAVE OPTION VALUES [ FROM CONNECTION ] }
external-call : '[ operating-system: ]library-function-name@library-name[;...]'
operating-system : UNIX
STOPLIST 句
この句は、テキストインデックスの構築時に無視する単語のリストを作成したり、置き換えたりするときに使用します。このテキスト設定オブジェクトを使用すると、このリストに指定される単語もクエリで無視されます。ストップリストの単語は、スペースで区切ります。たとえば、STOPLIST 'because about therefore only'
のように記述します。ストップリストの単語には、ホワイトススペースを含めることはできません。
各言語用のストップリストのサンプルは、%SQLANYSAMP12%\SQLAnywhere\SQL にあります。
ストップリストの単語に、英数字以外の文字は使用できません。ストップリストの長さは、8000 バイト未満にしてください。
単語をストップリストに加えるかどうかは、慎重に検討してください。
MINIMUM TERM LENGTH 句 NGRAM テキストインデックスを使用する場合、MINIMUM TERM LENGTH 句に指定された値は無視されます。
テキストインデックスに使用できる単語の最小文字数。テキストインデックスの構築時または再表示時に、この設定より短い単語は無視されます。このオプションの値は 0 より大きくする必要があります。このオプションを MAXIMUM TERM LENGTH より大きい値に設定すると、MAXIMUM TERM LENGTH の値が自動的に調整され、MINIMUM TERM LENGTH の新しい値と同じになります。
MAXIMUM TERM LENGTH 句 NGRAM テキストインデックスで MAXIMUM TERM LENGTH 句を使用して、文字列の分割後の N-gram のサイズを設定します。
GENERIC テキストインデックスで MAXIMUM TERM LENGTH 句を使用して、テキストインデックスに含める単語の最大文字数を設定します。テキストインデックスの構築時または再表示時に、この設定より長い単語は無視されます。MAXIMUM TERM LENGTH の値は 60 以下にする必要があります。このオプションを MINIMUM TERM LENGTH より小さい値に設定すると、MINIMUM TERM LENGTH の値が自動的に調整され、MAXIMUM TERM LENGTH の新しい値と同じになります。
TERM BREAKER 句 カラム値を単語に分割するときに使用するアルゴリズムの名前。選択肢は GENERIC (デフォルト) または NGRAM です。
GENERIC GENERIC では、TERM BREAKER GENERIC を指定して GENERIC 単語区切りの組み込みアルゴリズムを使用するか、または、TERM BREAKER GENERIC EXTERNAL NAME 句を使用して外部アルゴリズムを指定できます。
組み込み GENERIC アルゴリズムは、英数字以外の文字で区切られた 1 つまたは複数の英数字の文字列を単語として扱います。
外部ライブラリにある単語区切りファンクションのエントリポイントを指定するには、TERM BREAKER GENERIC EXTERNAL NAME 句を指定します。このことは、インデックスの作成やクエリを行う前の単語の区切り方に関してカスタム要件 (アポストロフィを単語区切りとしてではなく、単語の一部と見なすなど) がある場合に便利です。
external-call は、複数のファンクションやライブラリを指定でき、ライブラリのファイル拡張子 (通常、Windows の場合は .dll、UNIX の場合は .so) を含めることができます。ファイル拡張子がない場合は、ライブラリに対するプラットフォーム固有のデフォルトのファイル拡張子がデータベースサーバーで使用されます。たとえば、EXTERNAL NAME 'TermBreakFunct1@myTBlib;Unix:TermBreakFunct2@myTBlib'
は、Windows の場合は myTBlib.dll から TermBreakFunct1 ファンクションを呼び出し、UNIX の場合は myTBlib.so から TermBreakFunct2 ファンクションを呼び出します。
NGRAM 組み込み NGRAM アルゴリズムは文字列を N-gram に分割します。N-gram は、ある文字列中の n 文字分の部分文字列です。外部単語区切りが指定されていない場合、NGRAM 単語区切りは、あいまい (近似) 一致、または単語の区切りにホワイトスペースや非英数字文字を使用しないドキュメントに必要です。
PREFILTER EXTERNAL NAME 句 PREFILTER EXTERNAL NAME 句を指定して、外部ライブラリにある事前フィルターファンクションのエントリポイントを指定します。このことは、テキストデータをバイナリデータ (PDF など) から抽出する必要がある場合に便利です。また、データ (HTML など) のインデックスを作成する前に削除するフォーマット情報やイメージが、インデックスを作成するテキストに含まれている場合にも便利です。
external-call は、複数のファンクションやライブラリを指定でき、ライブラリのファイル拡張子 (通常、Windows の場合は .dll、UNIX の場合は .so) を含めることができます。ファイル拡張子がない場合は、ライブラリに対するプラットフォーム固有のデフォルトのファイル拡張子がデータベースサーバーで使用されます。たとえば、PREFILTER EXTERNAL NAME 'PrefilterFunct1@myPreFilterlib;Unix:PrefilterFunct2@myPreFilterlib'
は、Windows の場合は myPreFilterlib.dll から PrefilterFunct1 ファンクションを呼び出し、UNIX の場合は myPreFilterlib.so から PrefilterFunct2 ファンクションを呼び出します。
DROP PREFILTER 句 DROP PREFILTER 句は、指定された事前フィルターライブラリの使用をテキスト設定オブジェクトに対して削除するために使用します。つまり、このテキスト設定オブジェクトを使用するインデックスをデータベースサーバーが構築するときに、事前フィルターが実行されなくなります。
SAVE OPTION VALUES 句 テキスト設定オブジェクトが作成されると、現在の date_format、time_format、timestamp_format、timestamp_with_time_zone_format の各データベースオプションには、DATE、TIME、TIMESTAMP の各カラムがテキスト設定オブジェクトにどのように保存されているかが反映されます。SAVE OPTION VALUES 句は、テキスト設定オブジェクトに保存されたオプションを値を更新して、接続に現在有効なオプションを反映するために使用します。
単語長の設定を変更する前に、インデックス化の対象とクエリ単語の解釈に対する各種設定による影響に関する説明をお読みください。
テキストインデックスは、テキスト設定オブジェクトに依存しています。この文を使用する前に、依存する AUTO テキストインデックスまたは MANUAL REFRESH テキストインデックスをトランケートし、IMMEDIATE REFRESH テキストインデックスを削除してください。
テキスト設定オブジェクトの設定を表示するには、SYSTEXTCONFIG システムビューを問い合わせます。
外部の事前フィルターまたは単語区切りを変更または削除するには、DBA 権限が必要です (テキスト設定オブジェクトの所有者であるのみでは十分ではありません)。
他の場合には、テキスト設定オブジェクトの所有者であるか、DBA 権限が必要です。
オートコミット。
SQL/2008 ベンダー拡張。
次の文は、テキスト設定オブジェクト maxTerm16 を作成し、最大単語長を 16 に変更します。
CREATE TEXT CONFIGURATION maxTerm16 FROM default_char; ALTER TEXT CONFIGURATION maxTerm16 MAXIMUM TERM LENGTH 16; |
次の文は、maxTerm16 設定オブジェクトにストップリストを追加します。
ALTER TEXT CONFIGURATION maxTerm16 STOPLIST 'because about therefore only'; |
次の文は、myTextConfig テキスト設定オブジェクトの外部単語区切りを設定します。Windows と UNIX の両方のインターフェイスが指定されています。
ALTER TEXT CONFIGURATION myTextConfig TERM BREAKER GENERIC EXTERNAL NAME 'my_termbreaker@termbreaker.dll;Unix:my_termbreaker@libtermbreaker_r.so' |
次の例は、myTextConfig テキスト設定オブジェクトの外部事前フィルターを設定します。Windows と UNIX の両方のインターフェイスが指定されています。
ALTER TEXT CONFIGURATION myTextConfig PREFILTER EXTERNAL NAME 'html_xml_filter@html_xml_filter.dll;UNIX:html_xml_filter@libhtml_xml_filter_r.so'; |
次の例は、myTextConfig テキスト設定オブジェクトの外部事前フィルターを削除します。
ALTER TEXT CONFIGURATION myTextConfig DROP PREFILTER; |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |