検索関数定義の作成
CmSearchFunctionDefinition オブジェクトは、カスタム検索関数のハンドラー実装を指定します。
以下の Java™ および C# の例では、2 つの CmSearchFunctionDefinition オブジェクトの作成方法を示します。1 つのオブジェクトは Java で実装されたハンドラーを参照し、もう 1 つのオブジェクトは JavaScript で実装されたハンドラーを参照します。
作成される 1 つ目の CmSearchFunctionDefinition オブジェクトでは、Java で実装されたハンドラーはコード・モジュール内に含まれます。CodeModule オブジェクトが取得され、CmSweepAction オブジェクトの CodeModule プロパティーに設定されます。
作成される 2 つ目の CmSearchFunctionDefinition オブジェクトでは、検索関数ハンドラーは JavaScript で実装されるため、そのスクリプトをオブジェクトの ScriptText プロパティーに設定する必要があります。

制約事項: 保管済み検索ではカスタム検索関数を使用できません。カスタム検索関数は、アドホック検索かバックグラウンド検索の SELECT リスト内でのみ使用できます。

Java の例
// Create search function definition for Java handler.
CmSearchFunctionDefinition sfd = Factory.CmSearchFunctionDefinition.createInstance(os, "CmSearchFunctionDefinition");
// Java コンポーネントを持つ CodeModule オブジェクトの取得
CodeModule cm = Factory.CodeModule.getInstance(os, "CodeModule",
new Id("{30261747-0000-C817-91CA-46A3B56BF558}") );
// CodeModule プロパティーの設定
sfd.set_CodeModule(cm);
// ハンドラー・クラスの完全修飾名を指定して ProgId プロパティーを設定する
sfd.set_ProgId("sample.actionhandler.DateConversionFunctionHandler");
// その他のプロパティーを設定および保存
sfd.set_DisplayName("sfd_Java");
sfd.set_DescriptiveText("Specifies Java search function handler");
sfd.save(RefreshMode.REFRESH);
// Create search function definition for JavaScript handler.
CmSearchFunctionDefinition sfdJs = Factory.CmSearchFunctionDefinition.createInstance(os, "CmSearchFunctionDefinition");
// ProgId プロパティーをスクリプト・タイプ ID に設定
sfdJs.set_ProgId("Javascript");
// Call method to read script from a file, and set the script text on the definition object.
String inputScript = readScriptText();
sfdJs.set_ScriptText(inputScript);
// その他のプロパティーを設定および保存
sfdJs.set_DisplayName("sfd_JavaScript");
sfdJs.set_DescriptiveText("Specifies JavaScript search function handler");
sfdJs.save(RefreshMode.REFRESH);
C# の例
// Create search function definition for Java handler.
ICmSearchFunctionDefinition sfd = Factory.CmSearchFunctionDefinition.CreateInstance(os, "CmSearchFunctionDefinition");
// ハンドラー・クラスの完全修飾名を指定して ProgId プロパティーを設定する
sfd.ProgId = "sample.actionhandler.DateConversionFunctionHandler";
// Java コンポーネントを持つ CodeModule オブジェクトの取得
ICodeModule cm = Factory.CodeModule.FetchInstance(os,
new Id("{30261747-0000-C817-91CA-46A3B56BF558}"), null);
// CodeModule プロパティーの設定
sfd.CodeModule = cm;
// その他のプロパティーを設定および保存
sfd.DisplayName = "sfd_Java";
sfd.DescriptiveText = "Specifies Java search function handler.";
sfd.Save(RefreshMode.REFRESH);
// Create search function definition for JavaScript handler.
ICmSearchFunctionDefinition sfdJs = Factory.CmSearchFunctionDefinition.CreateInstance(os, "CmSearchFunctionDefinition");
// ProgId プロパティーをスクリプト・タイプ ID に設定
sfdJs.ProgId = "Javascript";
// Call method to read script from a file, and set the script text on the definition object.
String inputScript = readScriptText();
sfdJs.ScriptText = inputScript;
// その他のプロパティーを設定および保存
sfdJs.DisplayName = "sfd_JavaScript";
sfdJs.DescriptiveText = "Specifies JavaScript search function handler.";
sfdJs.Save(RefreshMode.REFRESH);