2017-12-04 9 views
1

ソート/注文クエリを追加しようとしています。私のjavaでMark Logicと話す前にStructuredQueryBuilderにソートクエリを追加する方法

StructuredQueryBuilder qb = new StructuredQueryBuilder(); 
QueryDefinition queryDef = qb.and(qb.value(qb.jsonProperty("status"), "Active"));    
SearchHandle resultsHandle = new SearchHandle();   
queryManager.setPageLength(PAGE_SIZE_TEN); 
int start = PAGE_SIZE_TEN * (pageNumber - 1) + 1; 
queryManager.search(queryDef, resultsHandle, start); 

以上が「アクティブ」状態で、変数「開始」に指定したページごとに見つかった10個のJSONファイルでresultsHandleを返します。

私の質問は、私は次のラインに沿って、多分何かのように並べ替えクエリ含まない方法です。私はそれが私の最新の日付の順に第一10個のJSONファイルを取得したい

QueryDefinition queryDef = qb.and(qb.value(qb.jsonProperty("status"), "Active"), 
            qb.sort?(qb.jsonProperty("dateCreated")); 

を。結果が得られた後、Comparatorを実行するには遅すぎます。その結果、ランダムな10個のjsonファイルが特定の順序で返されるわけではありません。

JSONファイルのいくつかのサンプルのようなになります。 1.json

[ 
{ 
    "id":"1", 
    "dateCreated":"2017-10-01 12:00:00", 
    "status":"Active" 
    "body":"This is a test" 
} 
] 

2.json

[ 
{ 
    "id":"2", 
    "dateCreated":"2017-10-02 12:00:00", 
    "status":"Active" 
    "body":"This is a test 2" 
} 
] 

を私はどのように使うのか、列挙型StructuredQueryBuilder.Orderingがあります実現それ?

答えて

0

StructuredQueryBuilder.Orderingは、具体的にはnear-queryで使用するためのもので、実行したいこととは関係ありません。クエリオプションを使用して、検索結果の並べ替え順序を定義する必要があります。 sort-orderクエリオプションを参照してください:

http://docs.marklogic.com/guide/search-dev/appendixa#id_44212

オプションは、事前に定義されており、MarkLogicにインストールしてから、検索で参照、または実行時にそれらを定義し、複合クエリーであなたの構造化照会でそれらを組み合わせることができますすることができます。

+0

は別の方法があります: "" – Ronaldo

+0

あなたが何を求めているのか分かりません。これは単なるXML名前空間宣言です。それはインターネットへの接続を意味するものではありません。 – kcoleman

関連する問題