如何使用MarkLogic Java API调用路径范围索引查询?

时间:2016-09-27 20:53:45

标签: java marklogic marklogic-8

我正在寻找一个使用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());

1 个答案:

答案 0 :(得分:2)

你非常接近。只需将您的倒数第二行更改为:

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

您还不需要任何已描述的选项,因此您可以删除OPTIONS_NAME,直到您有理由指定搜索选项为止。此外,请确保您的路径范围索引具有默认排序规则,或者为范围方法调用指定正确的排序规则。