Cloudant在排序时使用文本索引

时间:2016-06-24 03:10:23

标签: couchdb cloudant nosql

您好我尝试从Cloudant查询并按名称对结果进行排序,因此我创建了此文本索引(我使用了文本索引而不是JSON索引,因为如果我没有弄错,这样我就可以获得“书签”值返回对象)。

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

这是我的查询

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

但我不断收到此错误消息“此选择器没有可用的索引”。哪个部分我错了?

1 个答案:

答案 0 :(得分:0)

您可以使用搜索索引(JSON)并将书签作为响应以进行分页。 查询 - >新的搜索索引

按名称搜索:

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

在搜索调用中,您必须通过限制,书签(在第二次调用中),排序。

示例:

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

您可以搜索其他索引,例如id:

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

按ID获取的网址:

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

您可以将两者结合起来:

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