詳細検索の仕様変更
詳細検索では、検索条件の評価方法を改善しました。
主な変更点は、次の4点です。
- 子テーブル項目に対する 「を除く(< >)」 の判定を厳密化
- 「以外が存在(HAS OTHER THAN)」を追加
- AND条件 が正しく評価されるように改善
- 論理式で NOT が利用可能
1. 子テーブル項目の「を除く(< >)」の判定を厳密化
子テーブル項目に対して 「を除く(< >)」 を指定した場合の判定方法を見直しました。
従来は、子テーブル内に複数のデータがある場合、その中に検索値と一致するデータが含まれていても、別の値があれば検索結果にヒットすることがありました。
新しい仕様では、子テーブル内に1件でも検索値と一致するデータが存在する場合、そのレコードは除外されます。
例:出願人を「root ip」で除外する場合
検索条件の例
- テーブル名:出願人
- テーブル項目:出願人
- 検索値:root ip
- 検索式:を除く(< >)
このときの判定結果は次のとおりです。
| 出願人の状態 | 旧仕様:を除く(< >)root ip | 新仕様:を除く(< >)root ip | 以外が存在(HAS OTHER THAN)root ip |
|---|---|---|---|
| root ip のみ | 除外 | 除外 | 除外 |
| XXX株式会社 のみ | HIT | HIT | HIT |
| root ip + XXX株式会社 | HIT | 除外 | HIT |
| NULL | HIT | HIT | 除外 |
| 出願人テーブルなし | HIT | HIT | 除外 |
新仕様の 「を除く(< >)」 は、「子テーブル内に指定した値が存在しないこと」 を厳密に判定します。
そのため、出願人に root ip と XXX株式会社 の両方が登録されている場合は、root ip が存在しているため、検索結果にはヒットしません。
2. 「以外が存在(HAS OTHER THAN)」を追加
共願検索など、「指定した値そのものを除外したい」のではなく、「指定した値以外のデータが存在するものを探したい」というケースに対応するため、「以外が存在(HAS OTHER THAN)」 を追加しました。
「以外が存在(HAS OTHER THAN)」 は、指定した値以外の子データが1件でも存在する場合にヒットします。
たとえば、出願人に root ip 以外の共同出願人がいる案件 を検索したい場合に利用します。セクション1.の判定結果をご参照ください。
注意事項
「以外が存在(HAS OTHER THAN)」 は、旧仕様の 「を除く(< >)」 と完全に同じ動作ではありません。
特に、NULL や 子テーブルが存在しない場合 の扱いが異なります。
旧仕様に近い動作を再現したい場合は、次のように条件を組み合わせてください。
出願人 以外が存在(HAS OTHER THAN) root ip OR 出願人 IS NULL
3. AND条件が正しく評価されるようになりました
同一項目の条件を AND で組み合わせた場合、従来は内部エラーにより、一部の条件が正しく評価されないことがありました。
この不具合を修正し、現在はANDで結合した条件が正しく評価されます。
条件例
(案件担当者 = “zz” AND 担当者種別 = “xx”)
AND
(案件担当者 = “zz” AND 担当者種別 = “yy”)
現在は、このような条件でも正しく検索できます。
4. 論理式で NOT が利用可能になりました
論理式に NOT を記述できるようになりました。
これにより、「ある条件に一致し、別の条件には一致しない」という検索が可能になります。
現時点では、NOT専用の入力補助UIはありません。
NOTを使用する場合は、論理式を手動編集して入力してください。
記述例
S1 AND NOT S2

