如何在Oracle Text中查找尚未编入索引的文档

l7wslrjt  于 2023-10-16  发布在  Oracle
关注(0)|答案(1)|浏览(129)

**环境:**Oracle 19c

我们有一个系统,它使用Oracle Text(Oracle 19c)来索引存储为表中的B文件的PDF文件。我们使用Adobe Acrobat对PDF文件进行预处理以OCR PDF文件。大约一年前,OCR偶尔会将页面旋转90度或180度。这似乎是一个Adobe错误,因为它是可复制的。我们通知客户,他们需要在上传文档之前对其进行OCR,因为我们正在禁用OCR过程。我们现在正在对如何OCR文档的过程进行更改。因此,我们需要识别所有在Oracle Text索引中没有任何标记(单词)的文档,以便重新处理它们。我们的假设是,这些文档可能没有被客户OCR,因此无法使用Oracle Text进行搜索。
如何查询Oracle Text以查找没有任何索引标记的文档?
第二个问题:是否有一些方法来测试一个PDF文档,以检查它是否是OCR的?

表示例:

CREATE TABLE MY_SCHEMA.ORADOCS
(
  DOC_ID            NUMBER                      NOT NULL GENERATED BY DEFAULT ON NULL AS IDENTITY,
  SUBJECT_OR_TITLE  VARCHAR2(255 BYTE)          NOT NULL,
  DOC_DT            DATE                        NOT NULL,
  AUTHOR            VARCHAR2(255 BYTE),
  CREATE_DT         DATE                        DEFAULT sysdate               NOT NULL,
  CREATE_USER       VARCHAR2(100 BYTE)          DEFAULT USER                  NOT NULL,
  ORIG_FILENAME     VARCHAR2(255 BYTE),
  ORADOC_FILE       BFILE
)
TABLESPACE MY_DOC

ALTER TABLE MY_SCHEMA.ORADOCS ADD (
  CONSTRAINT ORADOCS_PK1
  PRIMARY KEY
  (DOC_ID)
  USING INDEX MY_SCHEMA.ORADOCS_PK1
  ENABLE VALIDATE);

CREATE INDEX MY_SCHEMA.AUTHOR_ORADOCS ON MY_SCHEMA.ORADOCS
(AUTHOR)
INDEXTYPE IS CTXSYS.CONTEXT
PARAMETERS('storage meta_storage  memory 4G SYNC(ON COMMIT)');

CREATE INDEX MY_SCHEMA.ORADOC_FILE ON MY_SCHEMA.ORADOCS
(ORADOC_FILE)
INDEXTYPE IS CTXSYS.CONTEXT
PARAMETERS('storage meta_storage memory 6G SYNC(ON COMMIT)');

CREATE INDEX MY_SCHEMA.SUBJECT_ORADOCS ON MY_SCHEMA.ORADOCS
(SUBJECT_OR_TITLE)
INDEXTYPE IS CTXSYS.CONTEXT
PARAMETERS('storage meta_storage  memory 4G SYNC(ON COMMIT)');

谢谢,瑞克

kx5bkwkv

kx5bkwkv1#

您可以查看CTX_USER_INDEX_WARNRS视图。当ctx_ddl.sync_index遇到内容问题时,会在此“表”上生成一个条目。
您有关于受影响的Oracle Text索引、时间戳、错误消息的信息,并且ERR_TEXTKEY值包含数据表中行的rowid。
希望这有帮助

相关问题