50.1 QUERY_EXPERT_SEARCHファンクション
このファンクションは、エンド・ユーザー検索問合せを対応するOracle Text構文に変換し、高度な検索機能と正確な検索機能を有効にします。
検索式を処理し、Oracle Textで使用できるカスタム検索問合せを生成して、効率的で正確なテキストベースの検索を実行します。
検索式の構文について
パラメータとして提供される検索式は、特定の構文に従い、次の要素を含めることができます:
- 演算子 - 検索式には、検索動作を変更する特定の演算子を含めることができます:
- AND -
AND
演算子は、複数の検索語を組み合せるために使用されます。たとえば、"red AND blue"は、red
とblue
の両方を含むドキュメントを取得します。 - OR -
OR
演算子は、Oracle TextのACCUM
演算子にマップされ、検索語を組み合せたり、いずれかの語を含むドキュメントを取得するために使用されます。たとえば、"red OR blue"は、red
またはblue
のいずれかを含むドキュメントを取得し、両方の用語と一致するドキュメントのスコアは高くなります。 - NOT -
NOT
演算子は、検索結果から特定の用語を除外するために使用されます。たとえば、"red NOT blue"は、red
を含むがblue
を含まないドキュメントを取得します。 - AROUND(d) -
AROUND
演算子は、Oracle TextのNEAR
演算子の抽象化です。これは、互いに一定の距離(d)内で用語を見つけるために使用されます。距離パラメータ(d)は、2つの問合せ用語間で許可される単語の最大数を表します。たとえば、"red AROUND(3) blue"は、red
とblue
が互いに3語以下で存在するドキュメントを取得し、両方の語が近い場合はスコアが高くなります。
- AND -
- カッコ - カッコを使用して、検索語をグループ化し、評価の順序を指定できます。たとえば、"(red OR blue) AND green"は、
red
またはblue
およびgreen
のいずれかを含むドキュメントを取得します。 - 引用符で囲まれたフレーズ - フレーズ("red apple"など)を引用符で囲んで、正確なフレーズが検索されるようにします。たとえば、"red apple"は、正確なフレーズ
red apple
を含むドキュメントを取得します。 - あいまいな接頭辞 - この構文では、FUZZYキーワードの後にオプションのプラス(+)またはマイナス(-)記号を付けてあいまいさを増減することで、ファジー・マッチが可能になります。たとえば、"fuzzy+: red apple"は、あいまいさを増やして
red
およびapple
のファジー・マッチを実行します。 - 重み付け問合せ用語 - 検索式では、キャレット記号(^)とそれに続く数値を使用して、用語の重要度または重みを示す重み付け検索用語がサポートされます。たとえば、"red^3 apple"は、
apple
と比較して、red
という語に高い重みを割り当てます。
構文
APEX_SEARCH.QUERY_EXPERT_SEARCH (
p_search_expression IN VARCHAR2 )
RETURN CLOB;
パラメータ
パラメータ | 説明 |
---|---|
p_search_expression |
Oracle Text構文に変換するエンド・ユーザー検索問合せ。様々な検索演算子およびキーワードを含めることができます。 |
戻り値
このファンクションは、指定された検索式に基づいて生成されたOracle Text問合せを戻します。
例1
select query_expert_search('(red or white) "summer shorts"') from dual;
TEXT_QUERY
----------------------------------------
({red} ACCUM {white}) AND {summer shorts}
例2
select query_expert_search('fuzzy-: catz dogz') from dual;
TEXT_QUERY
----------------------------------------
FUZZY({catz},80,100,W) AND FUZZY({dogz},80,100,W)
例3
select query_expert_search('oracle^3 apex') from dual;
TEXT_QUERY
----------------------------------------
{oracle}*3 AND {apex}
親トピック: APEX_SEARCH