4.1.5 順列
順列として、元のトリプル内の値を異なる並び順で保持します。異なるソート順で、
またトリプルの各部分を効率的に参照できるように、3つの順列(並び順)で格納して います。順列は、3つのRDF要素(主語(Subject)、述語(Predicate)、目的語
(Object))のイニシャルから構成された略語として表現され、例えば{ SOP, PSO, OPS }のようになります。
オプションで次のいずれかのソート順を指定するには、cts:triples関数を使用 します。
• order-pso:述語、主語、目的語の順に並んだ結果を返します。
• order-sop:主語、目的語、述語の順に並んだ結果を返します。
• order-ops:目的語、述語、主語の順に並んだ結果を返します。
管理画面で、トリプルインデックスの設定まで下方向にスクロールし、trueに設定し ます。
初めてトリプルインデックスをオンにする場合、またはトリプルインデックスをオンに した後でデータベースを再インデックス付けする場合は、有効なsem:triple要素が 含まれるドキュメントだけがインデックス付けされます。
トリプルポジションインデックスを有効にすることで、cts:triple-range-query を使用した近接検索を高速化できます。
ネイティブのSPARQLを使用したクエリでは、トリプルポジションインデックスをオ ンにする必要はありません。
インメモリスタンドのトリプルインデックスのデータを管理するために割り当てられる キャッシュおよびバッファメモリのサイズは設定できます。
注: データベースのいずれかのインデックス設定を変更すると、新しい設定は 再インデックス付けがオンであるかどうか(reindexer enableが trueに設定されているかどうか)に基づいて有効になります。
4.2.2 Admin APIの使用
トリプルインデックスやトリプルインデックスのポジションをオンにしたり、データ ベースのインメモリトリプルインデックスのサイズを設定したりするには、Admin API 関数を使用します。
• admin:database-set-triple-index
• admin:database-set-triple-positions
• admin:database-set-in-memory-triple-index-size
次の例では、Admin APIを使用して「Sample-Database」のトリプルインデックスを trueに設定しています。
xquery version "1.0-ml";
import module namespace admin = "http://marklogic.com/
xdmp/admin" at "/MarkLogic/admin.xqy";
(: Get the configuration :)
let $config := admin:get-configuration()
(: Obtain the database ID of 'Sample-Database' :) let $Sample-Database := admin:database-get-id(
$config, "Sample-Database")
let $c := admin:database-set-triple-index($config,
$Sample-Database, fn:true())
return admin:save-configuration($c)
この例は、Admin APIを使用してデータベースのトリプルポジションをtrueに設定し ます。
xquery version "1.0-ml";
import module namespace admin = "http://marklogic.com/
xdmp/admin" at "/MarkLogic/admin.xqy";
let $config := admin:get-configuration()
let $Sample-Database := admin:database-get-id(
$config, "Sample-Database")
let $c := admin:database-set-triple-positions($config,
$Sample-Database, fn:true())
return admin:save-configuration($c)
次の例では、データベースのインメモリトリプルインデックスのサイズを256MBに設 定しています。
xquery version "1.0-ml";
import module namespace admin =
"http://marklogic.com/xdmp/admin" at
"/MarkLogic/admin.xqy";
let $config := admin:get-configuration()
let $Sample-Database := admin:database-get-id(
$config, "Sample-Database")
let $c := admin:database-set-in-memory-triple-index-size($config,$Sample-Database, 256)
return admin:save-configuration($c)
注: 関数のシグネチャおよび説明の詳細については、『XQuery and XSLT
Reference Guide』の「admin:database関数(database)」を参照してく ださい。