关于solr建立json 多层嵌套复杂数据的第一种方法

导语:最近在做一个有关于solr的项目,由于本人小白,所以从搭建solr服务开始,一步步边官网边百度慢慢研究。

       这两天在建立solr索引,存储的数据是多层嵌套的json数据。官网教程是英文的,粗略的查过几边也没有找到相关的内容。百度也没有找到。今天在一个朋友的帮助下找到了解决办法。就是下面这个网页解决了我的问题。
              https://github.com/mongodb-labs/mongo-connector/wiki/Usage%20with%20Solr
    贴出网页的重要信息: 
 
   
   Mongo Connector automatically "flattens" MongoDB documents. Fields within sub-documents can be referenced by their"dot-separated path" within the document. Likewise, array fields are unrolled, so that individual elements are accessible by the field's original name, plus a ".", plus the index within the array that the element occupied. 

以上英文的大意就是。solr不支持普通的多层嵌套的json 格式,如果要solr 中存储json 格式。多层嵌套的就需要转换一下格式。
下面是一个普通的多层嵌套的json例子(例子也是来源于那个网站)
 
   

{
    "subdoc": {
        "a": 1,
        "b": 2,
        "c": 3,
        "array": [
            {"name": "elmo"},
            {"name": "oscar"}
        ]
    }
}

become the following in Solr:(到了solr中就是这样)

 
   
{
    "subdoc.a": 1,
    "subdoc.b": 2,
    "subdoc.c": 3,
    "subdoc.array.0.name": "elmo",
    "subdoc.array.1.name": "oscar"
}
多层的json 在solr中只能这样存储。所以这就涉及到了json的多层如何整理成1层的问题了。这个问题今天也解决了。仍然感谢上面给我找到
资料的老哥,json解析转换成单层的模式的方法,我开始用的是拼接字符串最后转换成json格式的数据的解析模式。虽然也达到了要求,但是
那个老哥教了我用解析json重新封装成json对象的方式。这个两个转换方法下次再贴。
仅自己学习使用,没怎么写过。不好勿喷
     关于json复杂嵌套数据类型在solr中的使用,我还整理了另一种方式,算是基本符合json嵌套数据的本意。有想法的可以一起学习。链接如下:
          http://blog.csdn.net/liuqinshouss/article/details/75450522

你可能感兴趣的:(solr)