Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MarkLogic-按示例搜索对查询进行排序_Java_Marklogic - Fatal编程技术网

Java MarkLogic-按示例搜索对查询进行排序

Java MarkLogic-按示例搜索对查询进行排序,java,marklogic,Java,Marklogic,我将上面的代码用于MarkLogic搜索查询示例,我的问题是如何将“排序依据”条件传入RawQueryByExampleDefinition以对结果集进行排序或排序。例如,我希望结果按emailAddress排序,类似于以下查询: .... StringHandle rawHandle = new StringHandle(jsonString); RawQueryByExampleDefinition querydef = queryManager.newRawQuer

我将上面的代码用于MarkLogic搜索查询示例,我的问题是如何将“排序依据”条件传入RawQueryByExampleDefinition以对结果集进行排序或排序。例如,我希望结果按emailAddress排序,类似于以下查询:

    ....
    StringHandle rawHandle = new StringHandle(jsonString);
    RawQueryByExampleDefinition querydef = queryManager.newRawQueryByExampleDefinition(rawHandle);
    querydef.setCollections(collection);
    StringHandle report = queryManager.validate(querydef, new StringHandle());

    LOGGER.info("Query Def valididity: {}",report.toString());

    StringHandle resultsHandle = new StringHandle().withFormat(Format.JSON);
    queryManager.setPageLength(size);
    queryManager.search(querydef, resultsHandle, startIndex);
    ....

如何实现“sortby”以及指定desc或asc?

我认为这将通过使用中的“组合查询”和中的
排序顺序
选项来实现。

如何将选项(排序方式)以JSON格式添加到上面的QBE中?我想按如下方式传入查询:{“$query”:{“identifier”:“user”}},并在上面的文章中使用Java代码。如何将排序方式选项添加到JSON字符串查询中?如上所述,我认为您必须使用组合查询,而不是QBE。您可以将QBE转换为组合查询:-并同时显示查询和选项的语法。我不确定将QBE转换为组合查询后如何添加选项。。。我必须重新创建整个字符串并插入所需的排序选项吗?考虑到sortby值可以是我的对象的任何属性,这样做有点痛苦。。。有没有一种更简单的方法可以保留QBE方法,因为这是我实现搜索端点的方式-客户端/用户将传入QBE,他们希望根据他们喜欢输入的属性对其进行排序。。。
{
 "$query":
   {
      "identifier":"user",
      "$sort-by":"emailAddress"
   }
}