一种基于空间数据数值索引的数据存储与检索方法

文档序号:6385720阅读:203来源:国知局
专利名称:一种基于空间数据数值索引的数据存储与检索方法
技术领域
本发明涉及一种基于空间数据数值索引的数据存储与检索方法,尤其适用于空间数据中数值属性索引的建立与检索,涉及空间数据检索服务领域。
背景技术
伴随着空间数据技术以及互联网技术的快速发展,空间数据采集量的爆炸性增长,基于空间数据的互联网相关服务从无到有,蓬勃发展,并在相关学科的研究领域中,发挥着越来越重要的作用。在基于空间数据的服务中,空间数据的检索是一项基础性的服务,是用户定位获取数据的主要方式。面对海量的已采集空间数据,需要建立合适的空间数据索弓I来提高检索速度,并提供稳定可靠的增量索引处理方案来处理新采集的数据。经过多年的发展,目前已经出现了大量的空间数据索引技术,早期的索引方法有B+树和散列索引,中后期出现的空间数据库的索引方法有格子文件及其变形、四叉树及其变形树、k-d树及其变形树、R树及其变形树等。这些空间索引技术,又可分为基于点数据的数据结构和基于非点数据的数据结构两大类,点数据的数据结构包含四叉树及其变形树、k-d树及其变形树、k-d-B树、h B树。非点数据的数据结构包含基于区域交叉类(如R树、R*树等)、基于剪切类(如R+树、k-d树等)。在这些索引的基础上,出现了各种空间数据库产品。商业化的产品有ORACLESPATIAL、ARCSDE等,开源空间数据库主要是PostgreSql和Mysql的空间数据库插件,分别是postGIS和mySpatial。在同等的硬件条件下,空间数据的检索速度主要由表示空间数据位置的坐标点的数量和其所采用的索引结构决定,表示空间数据位置的坐标点越少、空间索引结构支持的数值比较定位的速度越快,空间数据的检索速度就更快。目前基于上述空间数据索引的空间数据检索服务,由于其采用的空间索引结构数值比较速度较慢,在检索的表示位置的坐标点较多的空间数据时,检索性能都较差。

发明内容
针对现有技术中存在的技术问题,本发明的目的在于提供一种基于空间数据数值索引的数据存储与检索方法。本发明设计了一种支持数值范围快速检索的数值索引文件结构,可对数据库存储的空间数据进行快速索引、提高空间数据的检索速度、支持增量索引。—个产品的数值索引文件逻辑上包含一个索引属性与倒排文件映射表和多个数值文档倒排表,如图1所示。索引属性与倒排文件映射表的内容由少量记录组成,每条记录中包含被索引的属性名称(即被索引的空间数据的属性名称)、该属性所对应的数值文档倒排表名称,如图2所示。数值文档倒排表包含一组倒排记录,一个倒排记录与一个被索引数值(即被索引空间属性的数值)对应,倒排记录按照索引数值由小到大的顺序有序排放。倒排记录包含被索引数值、包含该数值的所有文档号集合、包含该数值的最大文档号MaxDocNo、包含该数值的最小文档号MinDocNo、包含该数值的文档总数DocNum,如图3所示,文档号是指数据表中一条记录的唯一标识号。本发明的技术方案为I)从互联网中自动抓取包含空间数据的html页面,对其进行解析,将解析后的数据存储到数据库中;2)在数据库中选择要进行索引的属性,对于其中非数值类型的属性,将其转换成与其一一对应的数值进行存储;3)按照空间数据所属类型对空间数据进行分类索引,为每一数据产品的数据表建立一数值索引文件,将其作为主索引,并按设定时间周期创建增量索引,定期将增量索引与主索引进行合并;所述数值索引文件包括一个索引属性与倒排文件映射表和多个数值文档倒排表;其中,所述索引属性与倒排文件映射表中的每条记录中包含被索引的属性名称、属 性所对应的数值文档倒排表名称;所述数值文档倒排表包含一组倒排记录,每一倒排记录与一被索引数值对应,倒排记录包含被索引数值、包含该被索引数值的所有文档号集合、包含该被索引数值的最大文档号MaxDocNo、包含该被索引数值的最小文档号MinDocNo、包含该被索引数值的文档总数DocNum ;4)将所述索引部署到检索服务端;5)检索服务端根据收到的检索请求,利用所述主索引对数据表进行检索,返回检索结果。进一步的,所述主索引或所述增量索引的建立方法为21)对要建立索引的数据表,创建对应的所述索引属性与倒排文件映射表文件,并在文件中添加记录;22)向各个索引属性与倒排文件映射表文件中添加倒排记录,并使用各个属性的hash定位函数来确定添加的倒排记录的存放位置。进一步的,使用各个属性的hash定位函数来确定添加的倒排记录的存放位置的方法为I)对于整数型属性,使用Hash定位函数hashPosition (x) = x+1来确定添加的倒排记录的存放位置;其中,100彡X彡O, X表示属性值;2)对于最大经度、最小经度、中心经度属性,使用Hash定位函数hash(X)=(x+180) *10000来确定添加的倒排记录的存放位置;其中,-180. 0001 ^ x ^ 180,x表示属性值;3)对于最大纬度、最小纬度、中心纬度属性,使用Hash定位函数hash(x)=(x+90)*10000来确定添加的倒排记录的存放位置;其中,-90 ^ X ^ 90,x表示属性值;4)对于日期属性,首先将其为整型数属性,然后使用hash定位函数hashPosition(X) = x+1来确定添加的倒排记录的存放位置;其中,18665彡x彡O, x表示
属性值。进一步的,建立所述数值文档倒排表的方法为41)对于某一属性,仓Il建大小为MaxRecordNumber个倒排记录数组,每个记录中的最大文档号MaxDocNo记录数据表的id属性的最大值初始化为O、最小文档号MinDocNo记录数据表的id属性的最小值初始化为O、文档个数DocNum初始化为O、被索引的数值设置为O ;其中,MaxRecordNumber的值为该属性值hash函数的最大值与最小值的差加上I ;42)从数据表中读取一条待索引数据,定位该属性值在倒排表中所对应的记录位置m,由m得到倒排表的相应记录,开始在该记录中存放被索引数值,将该数据的文档id按照递增的方式存放到文档号集合中,对文档个数DocNum进行加I处理,如果加入的文档号小于最小文档号MinDocNo,则更新MinDocNo的值为当前要索引的文档号,如果加入的文档号大于最大文档号MaxDocNo,则更新MaxDocNo的值为当前要索引的文档号,进入43);43)如果数据表中还有待索引的记录,则进入42),如无待索引记录则将倒排记录数组写入数值文档倒排表文件,完成该属性的数值文档倒排表文件创建工作。进一步的,将增量索引合并到对应主索引中的方法为51)确认主索引与增量索引的索引属性与倒排文件映射表文件的内容是否相同,如果相同,进入步骤52),如果不同,则退出;52)遍历主索引的索引属性与倒排文件映射表文件中的记录,获取一个主索引属性对应的数值倒排表,将增量索引中对应属性的数值倒排表中的数据合并到该主索引属性的数值倒排表中;53)合并所有属性对应的数值倒排表后,删除增量索引的索引属性与倒排文件映射表文件和其所有的数值倒排表文件。进一步的,每一数据产品的数据表设置一整型主键id,作为索引时数据表中数据记录的文档号。进一步的,不同数据产品的数据表整型主键id具有不同区间范围的数值。进一步的,所述检索服务端包括分布式部署的多台检索服务器,其中一台检索服务器作为主检索服务器,接收所述检索请求并将检索请求均衡地分配到其他检索服务器上。进一步的,所述检索请求包括最大经度值、最小经度值、最大纬度值、最小纬度、产品类型名称、返回的文档号集合的起始位置begin、返回的文档号集合的偏移位置begin+offsetο进一步的,步骤5)的实现方法为I)检索服务端根据检索请求中的产品类型名称,确定要检索的索引文件,及索引属性与倒排文件映射表文件和其全部的数值倒排文件;2)从加载的索引属性与倒排文件映射表文件中,获取最小经度属性、最大纬度属性、最小纬度属性和开始日期属性所对应的倒排表文件名称,加载这些数值文档倒排表,分别对其进行范围检索,获取相应属性范围的文档号子集;3)合并所获取的文档号子集,从合并集合中选择从begin到begin+offset位置的文档号,并记录合并集合的大小resultSize ;4)通过合并后的文档号,查询该检索请求中的产品类型名称对应的数据表,获取各个文档号的全部属性信息,将这些属性信息、文档号和resultsize作为相应结果返回。基于以上内容本发明包括以下步骤(如图4所示)一.抓取存储空间数据从互联网中自动抓取包含空间数据的html页面,对其进行解析,将解析后的数据存储到数据库中。
二.非数值化索引属性的数值转换在数据库中选择要进行索引的属性,对于其中非数值类型的属性,将其转换成与其一一对应的数值进行存储。三·建立并合并索引按照空间数据所属类型对空间数据进行分类索引。创建索引时,先建立各个类型空间数据的主索引,然后按一定时间周期创建增量索引,定期将增量索引与主索引进行合并。四.分布式部署索引并启动检索服务程序将索引数据以及检索服务程序部署到不同的服务器上,来支持分布式检索。完成索引部署后,启动检索服务程序,处理检索请求。五·接收检索请求返回检索结果接收用户提交的检索条件,检索服务程序检索相应的数值索引,返回满足检索条件的检索结果。本发明的优点与积极效果与现有的空间数据库索引相比较,本发明充分利用了空间数据数值的分布特点,设计了相应的索引结构,可以对空间数据进行更快速的检索。对于日期这种非数值属性,设计相应的转换函数,将其处理为数值,使得设计的数值索引除空间属性外还支持其他可以数值化属性(如日期等)的检索。除支持空间数据不同属性的索引建立和快速检索外,本发明还有以下优点与积极效果采用主索引加增量索引的处理方式生成索引,避免了每次索引数据需要重新索引全部数据,降低了索引生成的速度,减小了生成索引时系统资源的消耗。索引根据卫星产品分类,支持分布式检索。不同卫星产品数据索引结构相同,支持各个不同产品数据的检索结果的混合排序。使用数据库存储空间数据,方便数据的管理,且数值索引的使用不影响数据自带的空间索引的使用。


图1数值索引文件逻辑结构图;图2索引属性与倒排文件映射表结构图;图3数值文档倒排表结构;图4为本发明的方法流程图;图5抓取解析存储Modi s数据的流程图。具体实施方法下面以mod091数据产品为例,说明建立索引和检索服务的过程一 .抓取存储空间数据(如图5所示)抓取解析存储mod091数据的过程如下所示1.访问网站 http://earthexplorer. usgs. gov/,在其首页的标签页 Data set 中选择产品mod091,在标签页path/row中设置检索空间范围,点击Results按钮好后,获取包含产品mod091数据信息的页面。2.提取页面中的数据信息包括数据id、最大经度、最小经度、最大纬度、最小纬度、中心经度、中心纬度、平均云量、开始日期。3.将提取的mod09al数据全部插入到mod09al产品对应的数据表mod09al_metadata中(一个产品对应一个数据表),并为每一条记录增加入库的时间,在生成增量索引时使用。其中mod09al数据表mod09al_metadata设置整型主键id,索引时将其作为空间数据的文档号(即将数据表的id属性值作为文档号),给各表id分配不同范围的数值,以防止索引合并时数据丢失,如mod09al_metadata配的文档号区间为
。二.非数值化索引属性的数值转换在mod091产品数据所在的数据表中,选择要进行检索处理的属性1.选择用于检索的数值型属性有最大经度、最小经度、最大纬度、最小纬度、中心经度、中心纬度、平均云量。2.选择用于检索的非数值型数据有开始日期。这里将非数值型数据开始日期转化为数值型数据,以日期d = 1999-12-12为例,使用函数 dayToNumber (d) = (year (d) -1970) *366+day0fYear (d),来计算其对应的数值是dayToNumber(d) = 10960。注year(d)的结果是d所属的年份;dayOfYear (d)的结果是一个日期属于该年份第几天。三·建立并合并索引对已经存储在mod09al产品表mod09al_metadata中的数据建立索引,将其作为主索引,主索引只建立一次;对于每天新增加到mod09al_metadata的数据建立索引,将其作为增量索引,并将增量索引合并到主索引中。建立索引(主索引与增量索引的建立过程相同)的描述如下所示1.对要建立索引的数据表,创建对应的索引属性与倒排文件映射表文件,并在文件中添加记录,记录内容包含检索索引属性名称及其数值文档倒排表的文件名称,检索索引属性名称及其数值文档倒排表一一对应;创建各个属性相应的数值文档倒排表,准备向数值文档倒排表文件中添加数据内容。检索属性名称为步骤二中处理的属性,2.向各个索引属性与倒排文件映射表文件中添加倒排记录,并使用各个属性的hash定位函数来确定添加的倒排记录的存放位置,其中各属性的hash函数如下所示平均云量属性为整数,使用的Hash定位函数为hashPosition(x) = x+1, (100 >= x >= O, x表示属性值);最大经度、最小经度、中心经度为精度是小数点后四位的浮点数使用的Hash定位函数为hash (X) = (x+180) *10000 (-180. 0001 < = x < = 180,x 表示属性值)最大纬度、最小纬度、中心纬度为精度是小数点后四位的浮点数使用的Hash定位函数为hash(x)=(x+90)*10000 (-90 <= X <= 90,X表示属性值)日期属性转化后为整型数值,其hash定位函数为hashPosition (X) = x+1, (18665 >= x >= O, x 表不属性值,其中 18665 表不日期 2020-12-30,O 表示 1970-01-01)以最大经度值建立数值文档倒排表文件为例,过程如下所示 ①创建大小为MaxRecordNumber个倒排记录数组,每个记录中的最大文档号MaxDocNo记录数据表的id属性的最大值初始化为O、最小文档号MinDocNo记录数据表的id属性的最小值初始化为O、文档个数DocNum都初始化为O、被索引的数值设置为O,其中,MaxRecordNumber的值为最大经度值hash函数的最大值与最小值的差加上I,MaxRecordNumber = hashPosition (Xmax)-hashPosition (Xmin)+1。②从mod09al_metadata表中读取一条待索引数据,获取其最大经度属性的数值maxLongitude,由其hash定位函数hash (maxLongitude)得到其最大经度值在倒排表中所对应的记录位置m,由m得到倒排表的相应记录,开始在该记录中存放被索引数值,将该数据的文档id按照递增的方式存放到文档号集合中,对文档个数DocNum进行加I处理,如果加入的文档号小于最小文档号MinDocNo,则更新MinDocNo的值为当前要索引的文档号,如果加入的文档号大于最大文档号MaxDocNo,则更新MaxDocNo的值为当前要索引的文档号,进入过程③。③如果mod09al_metadata表中还有待索引的记录,则进入过程②,如无待索引记录则将倒排记录数组写入数值文档倒排表文件,完成数值文档倒排表文件创建工作。3.完成索引属性与倒排文件映射表文件中包含的全部数值文档倒排表文件后,索引建立完毕。索引合并的描述如下所示1.确认主索引与增量索引的索引属性与倒排文件映射表文件的内容是否相同,如果相同,进入步骤2,如果不同,则退出。2.遍历主索引的索引属性与倒排文件映射表文件中的记录,获取一个主索引属性对应的数值倒排表,将增量索弓I中对应属性的数值倒排表中的数据,合并到主索引属性的数值倒排表中。3.合并所有属性对应的数值倒排表后,删除增量索引的索引属性与倒排文件映射表文件和其所有的数值倒排表文件。四.分布式部署索引并启动检索服务程序部署多台检索服务器,每台检索服务器,存放相同的索引文件,由一个检索服务主程序统一处理检索请求,它将检索请求均衡地分配到各个检索服务器上,并返回检索结果(即检索服务程序位于一主检索服务器上,主检索服务器负责均衡分配)。检索服务器根据表中采集数据的时间,在每天固定时刻,对个产品对应的数据表中24小时内采集的数据,建立增量索引,并将增量索引合并到主索引中,重启各个检索服务器,加载新的索引文件,处理检索请求。五·接收检索请求返回检索结果以对mod09al产品的检索为例,其接收检索请求返回检索结果的过程如下所示1.输入条件检索区域的最大经度值maxSearchLongitude、最小经度值minSearchLongitude、最大讳度值 maxSearchLatitude、最小讳度 minSearchLatitude、开始日期date、产品类型名称mod09al、返回的文档号集合的起始位置begin、返回的文档号集合的偏移位置offset。其中最大经度值、最小经度值、最大纬度值、最小纬度、产品类型名称、返回的文档号集合的起始位置返回的文档号集合的偏移位置为必填信息2.向检索服务主程序,即主检索服务器,发送检索请求,主检索服务器将检索请求转发给其他检索服务器。
3.检索服务器根据检索请求中的产品类型名称,确定要检索的索引文件,及索引属性与倒排文件映射表文件和其全部的数值倒排文件。从加载的索引属性与倒排文件映射表文件中,获取最小经度属性、最大纬度属性、最小纬度属性和开始日期属性所对应的倒排表文件名称,加载这些数值文档倒排表,分别对其进行范围检索在最大经度属性倒排表中选择最大经度大于minSearchLogitude的文档号子集;在最小经度属性倒排表中选择小于maxSearchLogitude的文档号子集;在最大纟韦度属性倒排表中选择大于minSearchLatitude的文档号子集,最小纟韦度在属性倒排表中选择小于maxSearchLat i tude的文档号子集;在开始日期选择等于date的文档号子集;合并这些文档号子集,从合并集合中选择从begin到begin+offset位置的文档 号,记录合并集合的大小resultSize。获取属性倒排表中满足检索条件的文档号子集的算法如下所示(已最大经度为例)①使用最大经度属性的hash定位函数确定输入值minSearchLogitude对应的倒排记录位置position。 ②遍历从最大经度属性倒排表中,位置O到positon之间记录,将其各个记录的文档号集合合并构成最大经度属性倒排表检索的文档号集合。4.通过这些文档号(同时也是mod09al_metadata中的主键id),查询数据表mod09al_metadata表,获取各个文档号的全部属性信息,将这些属性信息、文档号和resultsize作为相应结果返回,供前台展示。
权利要求
1.一种基于空间数据数值索引的数据存储与检索方法,其步骤为 1)从互联网中自动抓取包含空间数据的页面,对其进行解析,将解析后的数据存储到数据库中; 2)在数据库中选择要进行索引的属性,对于其中非数值类型的属性,将其转换成与其 对应的数值进行存储; 3)按照空间数据所属类型对空间数据进行分类索引,为每一数据产品的数据表建立一数值索引文件,将其作为主索引,并按设定时间周期创建增量索引,定期将增量索引与主索引进行合并;所述数值索引文件包括一个索引属性与倒排文件映射表和多个数值文档倒排表;其中,所述索引属性与倒排文件映射表中的每条记录中包含被索引的属性名称、属性所对应的数值文档倒排表名称;所述数值文档倒排表包含一组倒排记录,每一倒排记录与一被索引数值对应,倒排记录包含被索引数值、包含该被索引数值的所有文档号集合、包含该被索引数值的最大文档号MaxDocNo、包含该被索引数值的最小文档号MinDocNo、包含该被索引数值的文档总数DocNum ; 4)将所述索引部署到检索服务端; 5)检索服务端根据收到的检索请求,利用所述主索引对数据表进行检索,返回检索结果。
2.如权利要求1所述的方法,其特征在于所述主索引或所述增量索引的建立方法为 21)对要建立索引的数据表,创建对应的所述索引属性与倒排文件映射表文件,并在文件中添加记录; 22)向各个索引属性与倒排文件映射表文件中添加倒排记录,并使用各个属性的hash定位函数来确定添加的倒排记录的存放位置。
3.如权利要求2所述的方法,其特征在于使用各个属性的hash定位函数来确定添加的倒排记录的存放位置的方法为 a)对于整数型属性,使用Hash定位函数hashPosition(x) = x+1来确定添加的倒排记录的存放位置;其中,100彡X彡0,X表示属性值; b)对于最大经度、最小经度、中心经度属性,使用Hash定位函数hash(x)=(x+180) *10000来确定添加的倒排记录的存放位置;其中,-180. 0001 ^ x ^ 180,x表示属性值; c)对于最大纬度、最小纬度、中心纬度属性,使用Hash定位函数hash(x)=(x+90) *10000来确定添加的倒排记录的存放位置;其中,-90 ^ X ^ 90,x表示属性值; d)对于日期属性,首先将其为整型数属性,然后使用hash定位函数hashPosition(X)=x+1来确定添加的倒排记录的存放位置;其中,18665彡X彡0, X表示属性值。
4.如权利要求1或2或3所述的方法,其特征在于建立所述数值文档倒排表的方法为 41)对于某一属性,仓Il建大小为MaxRecordNumber个倒排记录数组,每个记录中的最大文档号MaxDocNo记录数据表的id属性的最大值初始化为O、最小文档号MinDocNo记录数据表的id属性的最小值初始化为O、文档个数DocNum初始化为O、被索引的数值设置为0 ;其中,MaxRecordNumber的值为该属性值hash函数的最大值与最小值的差加上I ; 42)从数据表中读取一条待索引数据,定位该属性值在倒排表中所对应的记录位置m,由m得到倒排表的相应记录,开始在该记录中存放被索引数值,将该数据的文档id按照递增的方式存放到文档号集合中,对文档个数DocNum进行加I处理,如果加入的文档号小于最小文档号MinDocNo,则更新MinDocNo的值为当前要索引的文档号,如果加入的文档号大于最大文档号MaxDocNo,则更新MaxDocNo的值为当前要索引的文档号,进入43); 43)如果数据表中还有待索引的记录,则进入42),如无待索引记录则将倒排记录数组写入数值文档倒排表文件,完成该属性的数值文档倒排表文件创建工作。
5.如权利要求2所述的方法,其特征在于将增量索引合并到对应主索引中的方法为 51)确认主索引与增量索引的索引属性与倒排文件映射表文件的内容是否相同,如果相同,进入步骤52),如果不同,则退出; 52)遍历主索引的索引属性与倒排文件映射表文件中的记录,获取一个主索引属性对应的数值倒排表,将增量索引中对应属性的数值倒排表中的数据合并到该主索引属性的数值倒排表中; 53)合并所有属性对应的数值倒排表后,删除增量索引的索引属性与倒排文件映射表文件和其所有的数值倒排表文件。
6.如权利要求1或2或3或5所述的方法,其特征在于每一数据产品的数据表设置一整型主键id,作为索引时数据表中数据记录的文档号。
7.如权利要求6所述的方法,其特征在于不同数据产品的数据表整型主键id具有不同区间范围的数值。
8.如权利要求1所述的方法,其特征在于所述检索服务端包括分布式部署的多台检索服务器,其中一台检索服务器作为主检索服务器,接收所述检索请求并将检索请求均衡地分配到其他检索服务器上。
9.如权利要求1或8所述的方法,其特征在于所述检索请求包括最大经度值、最小经度值、最大纬度值、最小纬度、产品类型名称、返回的文档号集合的起始位置begin、返回的文档号集合的偏移位置begin+offset。
10.如权利要求9所述的方法,其特征在于步骤5)的实现方法为 1)检索服务端根据检索请求中的产品类型名称,确定要检索的索引文件,及索引属性与倒排文件映射表文件和其全部的数值倒排文件; 2)从加载的索引属性与倒排文件映射表文件中,获取最小经度属性、最大纬度属性、最小纬度属性和开始日期属性所对应的倒排表文件名称,加载这些数值文档倒排表,分别对其进行范围检索,获取相应属性范围的文档号子集; 3)合并所获取的文档号子集,从合并集合中选择从begin到begin+offset位置的文档号,并记录合并集合的大小resultSize ; 4)通过合并后的文档号,查询该检索请求中的产品类型名称对应的数据表,获取各个文档号的全部属性信息,将这些属性信息、文档号和resultsize作为相应结果返回。
全文摘要
本发明公开了一种基于空间数据数值索引的数据存储与检索方法。本方法为1)从互联网中自动抓取包含空间数据的页面,对其进行解析后存储到数据库中;2)在数据库中选择要进行索引的属性,对于其中非数值类型的属性,将其转换成与其应的数值进行存储;3)按照空间数据所属类型对空间数据进行分类索引,为每一数据产品的数据表建立一数值索引文件,将其作为主索引,并按设定时间周期创建增量索引,定期将增量索引与主索引进行合并;所述数值索引文件包括一个索引属性与倒排文件映射表和多个数值文档倒排表;4)将所述索引部署到检索服务端;5)检索服务端根据收到的检索请求,对数据表进行检索。本方法检索速度、支持增量索引。
文档编号G06F17/30GK103020281SQ201210580189
公开日2013年4月3日 申请日期2012年12月27日 优先权日2012年12月27日
发明者李晓东, 黎建辉, 杨风雷, 沈志宏, 刘峰 申请人:中国科学院计算机网络信息中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1