組み合わせ検索条件を指定して文書を検索する場合のコーディング例を,次に示します。
コーディング例での検索の概要は次のとおりです。
1 ////////////////////////////////////////////////////////////
2 // decmFactory : DecmFactoryインスタンス
3 ////////////////////////////////////////////////////////////
4
5 // 文書検索用インスタンスを取得
6 DecmSelect decmSelect = decmFactory.createDecmSelect();
7
8 ////////////////////////////////////////////////////////////
9 // 検索パラメタ指定
10 ////////////////////////////////////////////////////////////
11
12 // 検索取得列の指定
13 Vector<String> selectList = new Vector<String>();
14 selectList.add(DecmTableDef.ESYSPROP_NAME);
15 selectList.add(DecmTableDef.ESYSPROP_MODIFIER);
16 decmSelect.setSelectList(selectList);
17
18 // 関連ファイルを検索対象とする
19 decmSelect.setSubFileSearchMode(true);
20
21 ////////////////////////////////////////////////////////////
22 // 検索条件を指定
23 ////////////////////////////////////////////////////////////
24
25 //検索条件用のインスタンスを取得
26 DecmCondition condition_A = decmFactory.createDecmCondition();
27 DecmCondition condition_B = decmFactory.createDecmCondition();
28 DecmCondition condition_C = decmFactory.createDecmCondition();
29
30 // 組み合わせ検索条件用のインスタンスを取得
31 DecmCondGroup condGroupTop = decmFactory.createDecmCondGroup();
32 DecmCondGroup condGroupSub = decmFactory.createDecmCondGroup();
33
34 // 検索条件作成
35 condition_A.createStrCond(DecmTableDef.ESYSPROP_NAME, DecmCondition.OP_STWITH, "営業"); /* A */
36 condition_B.createStrCond(DecmTableDef.ESYSPROP_NAME, DecmCondition.OP_STWITH, "経営"); /* B */
37 condition_C.createStrCond(DecmTableDef.ESYSPROP_MODIFIER, DecmCondition.OP_EQ, "user01"); /* C */
38
39 // 組み合わせ検索条件を作成
40 // A or B
41 condGroupSub.addCond(condition_A, DecmCondGroup.OP_AND); // 第二引数の指定値は無視される
42 condGroupSub.addCond(condition_B, DecmCondGroup.OP_OR);
43
44 // (A or B) and C
45 condGroupTop.addCondGroup(condGroupSub, DecmCondGroup.OP_AND); // 第二引数の指定値は無視される
46 condGroupTop.addCond(condition_C, DecmCondGroup.OP_AND);
47
48 // 検索条件を指定
49 decmSelect.setCondGroup(condGroupTop);
50
51 ////////////////////////////////////////////////////////////
52 // 検索結果を取得
53 ////////////////////////////////////////////////////////////
54 Vector<DecmDocProp> ret = decmSelect.searchDoc();