2017-09-19 9 views
1

이진 파일에서 메타 데이터 추출을 시도하고 속성으로 설정하려고하면 다음 코드가 실행됩니다.marklogic의 이진 문서에서 메타 데이터 추출

xquery version "1.0-ml"; 
let $url := "/documents/test.docx" 
return xdmp:document-set-properties(
    $url, 
    for $meta in xdmp:document-filter(fn:doc($the-document))//*:meta 
    return element {$meta/@name} {fn:string($meta/@content)} 
) 

메타 데이터가 문자열 형식으로 저장되기 때문에 날짜, 시간 및 숫자를 비교할 수 없습니다. 마지막 라인에서 fn:string()을 제거했을 때 메타 데이터는 'content'in name 태그라는 속성으로 저장됩니다. 노드 속성을 사용하여 marklogic과 통신하기 때문에 속성 속성을 검색하고 비교하기가 어려워졌습니다.

메타 데이터를 원본의 동일한 데이터 형식에 저장할 수 있도록 코드를 수정할 수 있습니까?

답변

2

문서 속성은 항상 XML로 저장되며 그 값은 항상 문자 데이터로 저장되므로 문자열 값이 효과적으로 생성됩니다. 값을 그대로 캐스팅 할 수 있으면 입력 된 인덱스를 계속 작성할 수 있습니다. 문서 속성에서 입력 된 값을 가져 오려면 직접 입력해야합니다.

xdmp:document-get-properties($url, xs:QName("last-modified")) ! xs:dateTime(.) 

HTH!