Textアダプタでは、同じ表の複数の列に対してAccela BizSearchのインデックスを対応づけることができます。また、CONTAINS関数に複合検索条件を指定することで、複数の列に対応するフィールドに対して1回のCONTAINS関数で検索を行うことができます。この例を以下の図に示します。
図2.15 複合検索条件指定のCONTAINS関数の例
図の例では、「書籍」列と「概要」列を全文検索の対象とし、それぞれフィールド名「title」、「contents」としてAccela BizSearchのインデックスを作成しています。Textアダプタ定義は、これらの検索対象の列とAccela BizSearchのインデックスに各フィールドとの対応関係を規定しています。
このような場合、図に示すように、CONTAINS関数により、「書名」列と「概要」列に対応する「title」フィールド、「contents」フィールドの両方に対しての条件を合わせて指定(複合検索条件指定)することができます。例では、「「title」フィールドまたは「contents」フィールドに「富士通」というキーワードが含まれる」という検索条件を指定しています。複合検索条件指定の場合、次のルールでCONTAINS関数を記述します。
検索条件には、検索対象列に対応するフィールド名を指定します。検索条件の記述形式は、Accela BizSearchにおける検索条件の記述形式に準拠します。
図の例では、「書名」列がフィールド名「title」に、「概要」列がフィールド名「contents」に対応しています。したがって、検索条件は、「@title := 富士通 | @contents := 富士通」と指定します。
CONTAINS関数の列指定には、Textアダプタ定義名を文字列定数として指定します。
図の例では、Textアダプタ定義名は、「text1」と規定しています。したがって、CONTAINS関数は、CONTAINS('text1','@title := 富士通 | @contents := 富士通')と記述します。