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