私の marklogic サーバーには約 53,00,000 のドキュメントがあり、各ドキュメントには 1 つのレコードが含まれています。
xquery version "1.0-ml";
declare namespace pa = "http://www.contata.com/pa";
let $query :=
cts:or-query((
cts:element-word-query(
xs:QName("pa:name"), "SMITH"
),
cts:element-word-query(
xs:QName("pa:address-1"), ""
),
cts:element-word-query(
xs:QName("pa:address-2"), ""
),
cts:element-word-query(
xs:QName("pa:address-3"), ""
),
cts:element-word-query(
xs:QName("pa:city"), ""
)
)) return
cts:search(fn:doc(),$query)[5100000 to 5300000]
上記のクエリを実行すると、実行に時間がかかり、次のエラーが発生します
[1.0-ml] XDMP-EXTIME: cts:search(fn:doc(), cts:or-query((cts:element-word-query(xs:QName("pa:name"), "SMITH", ( "lang=en"), 1), cts:element-word-query(xs:QName("pa:address-1"), "", ("lang=en"), 1), cts:element-word -query(xs:QName("pa:address-2"), "", ("lang=en"), 1), ...))) -- 時間制限を超えました
しかし、実行するcts:search(fn:doc(),$query)[1000 to 2000]
と正常に実行されます。
もう 1 つ質問があります。すべてのドキュメントをロードした場合、RecordLoader ユーティリティからロードした後にドキュメントにインデックスを作成するにはどうすればよいですか。