Cloudant json索引与文本索引

时间:2016-12-21 02:05:58

标签: indexing couchdb cloudant nosql

您好我正在尝试了解Cloudant中的json索引与文本索引。现在我知道使用

{ "index": {}, "type": "text" }

将使整个文档可搜索。但是,

之间有什么区别
{
  "index": {
    "fields": [
      "title"
    ]
  },
  "type": "json"
}

{
    "index": {
        "fields": [
            {
                "name": "title",
                "type": "string"
            }
        ]
    },
    "name": "title-text",
    "type": "text"
}

感谢。

1 个答案:

答案 0 :(得分:1)

json类型:

  • 利用MapReduce的Map阶段
  • 将比固定密钥的文本类型更快地构建和查询
  • 没有bookmark字段
  • 不能使用$regex之类的组合或数组逻辑运算符作为查询的基础
  • 只能使用$eq$gt$gte$lt$lte(但不是$ne)等等运算符作为查询的基础
  • 最终可能会在内存中为复杂查询做更多工作
  • 排序字段必须编入索引

text类型:

  • 利用Lucene搜索索引
  • 允许使用一个简单的命令自动索引文档中的所有字段
  • 为执行即席查询和跨多个键排序提供了更大的灵活性
  • 允许您使用任何运算符作为选择器中查询的基础
  • 类型(:string:number)有时需要附加到排序字段

来自:https://docs.cloudant.com/cloudant_query.html

  

如果您确切地知道要查找的数据,或者您想知道哪些数据   将存储和处理要求保持在最低限度,您可以指定   如何创建索引,使其类型为json。

     

但是为了在寻找数据时获得最大的灵活性,你会这样做   通常创建一个文本类型的索引。

其他信息:
https://developer.ibm.com/clouddataservices/docs/cloudant/get-started/use-cloudant-query/