1

Windows Server 2008 R2 で Oracle 11g を実行しています

私は現在、募集システムを管理するために全国的に使用されているアプリケーションを持っています。私たちは契約エンジニアリング人材派遣会社です。

現在、私たちは以前に取り組んだ候補者のかなり適切なサイズのデータ​​ベースを持っています。私はOracle Textを使用して、添付された履歴書を検索可能にしました。これはうまくいきました。唯一の問題は、同じ候補者を複数の仕事に順番に送ることが多いことですつまり、同じ候補者の履歴書が検索結果に 6 ~ 7 回表示される可能性があるということです。一部の人は同じ名前を持っているため、候補者の名前のみを除外しますが、通常、1 人の採用担当者が 1 人の候補者と協力します。完璧ではないことはわかっていますが、絞り込むのに役立ちます。

重複を削除するためにいくつかのことを試しましたが、うまくいきません。検索結果を生成するために使用する現在のクエリは次のとおりです。

select score(1) relevance,
"PKEY",
"DATE_SUB",
"CLIENT",
"CANDIDATE",
"RECRUITER",
"SALES",
dbms_lob.getlength("RESUME") "RESUME",
+"MIMETYPE",
"FILENAME",
"POSITION",
"AVAILABILITY",
"RATE",
"ISSUES",
"WHEN_INT",
"FEEDBACK",
"NOTES"
from "SUBMITTALS"
where CONTAINS (resume, :P11_SEARCH, 1) > 0 order by 1 desc

何か案は?

再度、感謝します。

4

1 に答える 1

1

分析関数を使用して重複を削除できます。

select * from (
  select score(1) relevance,
  "PKEY",
  "DATE_SUB",
  "CLIENT",
  "CANDIDATE",
  "RECRUITER",
  "SALES",
  dbms_lob.getlength("RESUME") "RESUME",
  "MIMETYPE",
  "FILENAME",
  "POSITION",
  "AVAILABILITY",
  "RATE",
  "ISSUES",
  "WHEN_INT",
  "FEEDBACK",
  "NOTES",
  row_number() over (partition by CANDIDATE, RECRUITER order by PKEY) rn
  from "SUBMITTALS"
  where CONTAINS (resume, :P11_SEARCH, 1) > 0 
 )
 where rn = 1
 order by 1 desc

これにより、候補者/採用担当者のペアごとに 1 行が返されます。

于 2012-11-05T11:32:31.933 に答える