4 Oracle Text問合せの特殊文字
この章では、テキスト問合せに使用できる特殊文字について説明します。さらに、Oracle Textが予約語として処理するワードおよび文字を示します。
この章の内容は次のとおりです。
4.1 グループ化文字
グループ化文字は、問合せ式の問合せ語句および演算子をグループ化することによって、演算子の優先順位を制御します。グループ化文字を表4-1に示します。
表4-1 問合せ語句グループ化用の文字
グループ化文字 | 説明 |
---|---|
( ) |
カッコ文字は、文字間の語句および演算子をグループ化します。 |
[ ] |
大カッコ文字は、文字間の語句および演算子をグループ化します。ただし、拡張演算子(FUZZY、SOUNDEX、STEM)に対しては機能しません。 |
問合せ語句および演算子のグループは、グループ化文字の左カッコで始まります。グループの終わりは、左カッコに対応する右カッコで示されます。右カッコと左カッコの間に、他のグループを挿入することもできます。
たとえば、左のカッコはグループの始まりを示します。最初に現れる右カッコが、グループの終わりです。右カッコよりも前に別の左カッコがあれば、ネストされたグループを示します。
4.2 エスケープ文字
「and」、「&」、「or」、「│」、「accum」など、問合せ式で特別な意味を持つワードまたは記号を問い合せるには、これらをエスケープする必要があります。表4-2で説明しているように、問合せ式で文字をエスケープするには2通りの方法があります。
表4-2 問合せ語句エスケープ用の文字
エスケープ文字 | 説明 |
---|---|
{} |
中カッコを使用して、文字または記号の文字列をエスケープします。中カッコで囲まれたものが、エスケープ・シーケンスの部分とみなされます。 中カッコを使用して単一の文字をエスケープすると、エスケープされた文字が問合せ内の別のトークンになります。 |
\ |
円記号を使用して、単一の文字または記号をエスケープします。円記号の直後の文字のみがエスケープされます。たとえば、blue\-greenという問合せには、blue-greenおよびblue greenが一致します。 |
次の例では、それぞれの式にテキスト演算子または予約記号が入っているため、エスケープ・シーケンスが必要です。
'high\-voltage' '{high-voltage}' 'XY\&Z' '{XY&Z}'
最初の例の問合せには、high-voltageまたはhigh voltageが一致します。
2番目の例では、XY&Zの問合せに対して'XY Z'、'XY-Z'、'XY*Z'などが戻され、さらに'XY&Z'も戻されます。これは、アルファベット以外の文字が空白として処理されるためです(したがって、XY&Zは'XY Z'として処理されます)。XY&Zのみに一致させるには、&をprintjoinとして宣言する必要があります。(ただし、宣言した場合、XY&Zは、'XY & Z'に一致しません。)printjoinの詳細は、「BASIC_LEXER」を参照してください。
ノート:
中カッコを使用してワード内の個々の文字をエスケープすると、文字はエスケープされますが、ワードは3つのトークンに分割されます。たとえば、high{-}voltageと書かれた問合せでは、ハイフンの両側に空白があるhigh - voltageが検索されます。
エスケープ文字の問合せ
左中カッコの{は、エスケープ・シーケンスの始まりを示し、右中カッコの}は、そのシーケンスの終わりを示します。左中カッコと右中カッコの間のすべて(すべての左中カッコを含む)が、エスケープされる問合せ式の部分です。エスケープされた問合せ式に右中カッコを組み込むには、}}
を使用します。エスケープ文字(円記号)をエスケープするには、\\
を使用します。
4.3 予約語
表4-3に、CONTAINS
問合せでの検索時にエスケープする必要があるOracle Textの予約語を示します。エスケープ・シーケンスに中カッコ{}と円記号\のどちらをいつ使用するかのルールは、表4-2を参照してください。
表4-3 予約語
予約語 | 予約語(文字) | 演算子 |
---|---|---|
ABOUT |
(なし) |
ABOUT |
ACCUM |
, |
ACCUMULATE |
AND |
& |
AND |
BT |
(なし) |
BROADER TERM |
BTG |
(なし) |
BROADER TERM GENERIC |
BTI |
(なし) |
BROADER TERM INSTANCE |
BTP |
(なし) |
BROADER TERM PARTITIVE |
EQUIV |
= |
EQUIVALENCE |
FUZZY |
? |
FUZZY |
(なし) |
{ } |
エスケープ文字(複数) |
(なし) |
\ |
エスケープ文字(単一) |
(なし) |
( ) |
グループ化文字 |
(なし) |
[ ] |
グループ化文字 |
HASPATH |
(なし) |
HASPATH |
INPATH |
(なし) |
INPATH |
MDATA |
(なし) |
MDATA |
MINUS |
- |
MINUS |
NEAR |
; |
NEAR |
NOT |
~ |
NOT |
NT |
(なし) |
NARROWER TERM |
NTG |
(なし) |
NARROWER TERM GENERIC |
NTI |
(なし) |
NARROWER TERM INSTANCE |
NTP |
(なし) |
NARROWER TERM PARTITIVE |
OR |
| |
OR |
PATTERN |
(なし) |
PATTERN |
PT |
(なし) |
PREFERRED TERM |
RT |
(なし) |
RELATED TERM |
(なし) |
$ |
STEM |
(なし) |
! |
SOUNDEX |
SQE |
(なし) |
ストアド・クエリー式 |
SYN |
(なし) |
SYNONYM |
(なし) |
> |
THRESHOLD |
TR |
(なし) |
TRANSLATION TERM |
TRSYN |
(なし) |
TRANSLATION TERM SYNONYM |
TT |
(なし) |
TOP TERM |
(なし) |
* |
WEIGHT |
(なし) |
% |
ワイルド・カード文字(複数) |
(なし) |
_ |
ワイルド・カード文字(単一) |
WITHIN |
(なし) |
WITHIN |