我正在寻找一个使用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("/a/b/c", "abcd")
SearchHandle results = queryMgr.search(querydef, new SearchHandle());
答案 0 :(得分:2)
你非常接近。只需将您的倒数第二行更改为:
StructuredQueryDefinition querydef =
qb.range(qb.pathIndex("/a/b/c"), "string", Operator.EQ, "abcd");
您还不需要任何已描述的选项,因此您可以删除OPTIONS_NAME,直到您有理由指定搜索选项为止。此外,请确保您的路径范围索引具有默认排序规则,或者为范围方法调用指定正确的排序规则。