2016-09-27 9 views
2

MarkLogic Java APIを使用してパス範囲インデックスクエリを実行する方法の例を探しています。MarkLogic Java APIを使用してパス範囲インデックスクエリを呼び出す方法は?

/doc1.xml

<a> 
    <b> 
    <c>1234</c> 
     <d> 
     <c>abcd</c> 
     </d> 
    </b> 
</a> 

/doc2.xml

<a> 
    <b> 
    <c>abcd</c> 
     <d> 
     <c>abcd</c> 
     </d> 
    </b> 
</a> 

パスの範囲インデックスがパスなしの名前空間でこのパス式を持つ作成されました:

/a/b/c 

はこれですMarkLogic Java APIを使用してパス範囲のインデックスクエリを呼び出す適切な方法は?

QueryManager queryMgr = client.newQueryManager(); 

StructuredQueryBuilder qb = new StructuredQueryBuilder(OPTIONS_NAME); 

StructuredQueryDefinition querydef = qb.PathIndex("https://stackoverflow.com/a/b/c", "abcd") 

SearchHandle results = queryMgr.search(querydef, new SearchHandle()); 

答えて

2

あなたは非常に近いです。ただ、この最後の行に2番目の変更:

StructuredQueryDefinition querydef = 
    qb.range(qb.pathIndex("https://stackoverflow.com/a/b/c"), "string", Operator.EQ, "abcd"); 

あなたは検索オプションを指定する理由を持ってまで、あなたがOPTIONS_NAMEを削除することができるようにあなたはまだ、あなたが説明してきたものから任意のオプションを必要としません。また、パス範囲のインデックスにデフォルトの照合順序が設定されていることを確認してください。そうでない場合は、レンジメソッド呼び出しに正しい照合順序を指定してください。

関連する問題