詳細検索の仕様変更

詳細検索では、検索条件の評価方法を改善しました。
主な変更点は、次の4点です。

  1. 子テーブル項目に対する 「を除く(< >)」 の判定を厳密化
  2. 「以外が存在(HAS OTHER THAN)」を追加
  3. AND条件 が正しく評価されるように改善
  4. 論理式で NOT が利用可能

1. 子テーブル項目の「を除く(< >)」の判定を厳密化

子テーブル項目に対して 「を除く(< >)」 を指定した場合の判定方法を見直しました。

従来は、子テーブル内に複数のデータがある場合、その中に検索値と一致するデータが含まれていても、別の値があれば検索結果にヒットすることがありました。
新しい仕様では、子テーブル内に1件でも検索値と一致するデータが存在する場合、そのレコードは除外されます。

例:出願人を「root ip」で除外する場合

検索条件の例

  • テーブル名:出願人
  • テーブル項目:出願人
  • 検索値:root ip
  • 検索式:を除く(< >)

このときの判定結果は次のとおりです。

出願人の状態旧仕様:を除く(< >)root ip新仕様:を除く(< >)root ip以外が存在(HAS OTHER THAN)root ip
root ip のみ除外除外除外
XXX株式会社 のみHITHITHIT
root ip + XXX株式会社HIT除外HIT
NULLHITHIT除外
出願人テーブルなしHITHIT除外

新仕様の 「を除く(< >)」 は、「子テーブル内に指定した値が存在しないこと」 を厳密に判定します。
そのため、出願人に 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