2016-06-24 6 views
0

Hallo Ich habe versucht, von Cloudant abzufragen und die Ergebnisse nach Namen zu sortieren, also habe ich diesen Textindex erstellt (ich habe Textindex anstelle von JSON Index verwendet, denn wenn ich mich nicht täusche, kann ich das tun Holen Sie den Wert "Lesezeichen" auf return-Objekt).Cloudant mit Textindex beim Sortieren

{ 
"type": "text", 
"def": { 
    "default_analyzer": "keyword", 
    "default_field": {}, 
    "selector": {}, 
    "fields": [ 
    { 
    "Name": "string" 
    } 
    ], 
    "index_array_lengths": true 
} 
} 

Und hier ist meine Frage

{ 
    "selector": { 
    "Type": "people" 
    }, 
    "fields": [ 
    "_id", 
    "_rev", 
    "Name" 
    ], 
    "sort": [ 
    {"Name:string": "asc"} 
    ], 
    "limit": 3 
} 

Aber ich erhalte immer diese Fehlermeldung „Es gibt keinen Index für diesen Selektor verfügbar ist“. Welchen Teil habe ich falsch gemacht?

Antwort

0

Sie können den Suchindex (JSON) verwenden und das Lesezeichen als Antwort für die Paginierung abrufen. Abfragen -> neuer Suchindex

nach Namen suchen:

function(doc){ 
    index('default', doc.name, {'facet' : true}); 
} 

Auf der Suche rufen Sie die Grenze passieren müssen, Lesezeichen (im zweiten Aufruf), sortiert.

Beispiel:

cloudant_host_url/_design/queries/_search/NAME_OF_THE_INDEX_SEARCH?q=WORD_YOU_ARE_SEARCHING&limit=5&sort=NAME&bookmark=BOOKMARK_GOT_IN_THE_PREVIOUS_CALL 

Sie können für die anderen Indizes suchen, zum Beispiel ID:

function(doc){ 
    index('id', doc._id, {'facet' : true}); 
} 

Die URL von id zu erhalten:

cloudant_host_url/_design/queries/_search/NAME_OF_THE_INDEX_SEARCH?q=*:* AND id:(ID_YOU_ARE_SEARCHING)&limit=5 

Sie beide kombinieren können:

cloudant_host_url/_design/queries/_search/NAME_OF_THE_INDEX_SEARCH?q=WORD_YOU_ARE_SEARCHING AND id:(ID_YOU_ARE_SEARCHING)&limit=5