买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种ElasticSearch查询加速方法_南京烽火星空通信发展有限公司_201710102541.9 

申请/专利权人:南京烽火星空通信发展有限公司

申请日:2017-02-24

公开(公告)日:2021-09-17

公开(公告)号:CN108509437B

主分类号:G06F16/31(20190101)

分类号:G06F16/31(20190101);G06F16/33(20190101);G06F16/22(20190101);G06F16/2455(20190101);G06F16/182(20190101)

优先权:

专利状态码:有效-授权

法律状态:2021.09.17#授权;2018.10.09#实质审查的生效;2018.09.07#公开

摘要:本发明公开了一种ElasticSearch查询加速方法,计算机大数据索引技术领域,分发明首先为每个字段增加Payload载荷域,然后再通过Payload载荷域在单一子查询条件的基础上做过滤操作,解决了ES原始数据查询时如果各个结果集数据量很大,取交集和并集的计算会占用大量时间的问题,提高了索引效率。

主权项:1.一种ElasticSearch查询加速方法,其特征在于:包括如下步骤:步骤1:建立全文索引系统,全文索引系统包括Hadoop存储服务器集群、WEB界面服务器、数据导入服务器和数据采集终端,数据采集终端通过互联网连接数据导入服务器,WEB界面服务器和数据导入服务器均通过互联网连接Hadoop存储服务器集群;步骤2:通过Lucene全文信息检索工具在Hadoop存储服务器集群中建立全文检索平台,并且通过Lucene全文信息检索工具在Hadoop存储服务器集群中分配出ES集群;步骤3:数据采集终端将流数据或文本数据输入到数据导入服务器,数据倒入服务器将流数据或文本数据发送给Hadoop存储服务器集群进行存储;步骤4:ES集群通过Lucene全文信息检索工具为Hadoop存储服务器集群存储的数据建立倒排文件索引结构的索引数据表,ES集群为索引数据表提供存储用的字段区;所述存储用的字段区中包含多个文档号存储字段区;步骤5:根据Lucene全文信息检索工具提供的底层存储结构,ES集群在倒排表链表中添加多个Payload载荷域,所有Payload载荷域均设于文档号存储字段区后边;步骤6:用户通过WEB界面服务器输入查询条件,WEB界面服务器将查询条件传送给ES集群;所述查询条件包括精确查询条件、范围查询条件、前缀查询条件和Payload范围查询条件;步骤7:ES集群通过Lucene全文信息检索工具首先根据精确查询条件、范围查询条件和前缀查询条件进行检索,相应得出精确查询结果、范围查询结果和前缀查询结果;步骤8:ES集群根据Payload范围查询条件分别对精确查询结果、范围查询结果和前缀查询结果进行过滤,得到精确查询结果集、范围查询结果集和前缀查询结果集;步骤9:ES集群将精确查询结果集、范围查询结果集和前缀查询结果集做交集计算,得出最终检索结果。

全文数据:—种EIasticSearch查询加速方法技术领域[0001]本发明属于计算机大数据索引技术领域。背景技术[0002]如今,一个大规模生产、分享和应用数据的时代正在开启,数据正在迅速膨胀并变大,人类已经进入互联网时代。尤其是社交网络,电子商务和移动通信把人类带入一个海量的结构与非结构数据信息的新时代。庞大的数据量导致这些海量数据具有很高的复杂性,并且充满变化,处理起来非常复杂。如何对海量数据进行分析处理,并对外提供简单便捷的服务、成为很多IT企业及机构必须面对的一个问题。[0003]海量数据分为结构化数据和非结构化数据,结构化数据是指诸如企业财务账目和生产数据、学生分数数据,统计报表数据等等,非结构化数据则是一些文本数据、图像声音等多媒体数据等等。其中非结构化数据占海量数据的80%左右。结构化数据可以通过传统的关系型数据库和后来发展的分布式No-SQL数据库进行处理,非结构化数据则可以通过全文检索技术对外提供查询服务。[0004]当前全文检索中,Lucene最为简单便捷,Lucene是一个全文信息检索工具包,使用的是倒排文件索引结构。它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。可以方便的嵌入到各种应用中实现针对应用的全文索引检索功能。目前,以Lucene为基础的集群技术,主要包括Solr与Elasticsearch以下均简称ES,ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,支持RESTfulweb、java接口,能够支持实时搜索,具有稳定,可靠,快速,安装使用方便等特点。[0005]ES原始数据查询,是将组合条件细分成一个个子条件下发查询,再对各个结果集进行交集或并集等操作,此时如果各个结果集数据量很大,则取交集和并集等操作会占用大量时间。发明内容[0006]本发明的目的是提供一种ElasticSearch查询加速方法,解决了ES原始数据查询时如果各个结果集数据量很大,则取交集和并集的计算会占用大量时间的问题,提高了索引效率。[0007]为实现上述目的,本发明采用以下技术方案:一种ElasticSearch查询加速方法,包括如下步骤:步骤1:建立全文索引系统,全文索引系统包括Hadoop存储服务器集群、WEB界面服务器、数据导入服务器和数据采集终端,数据采集终端通过互联网连接数据导入服务器,WEB界面服务器和数据导入服务器均通过互联网连接Hadoop存储服务器集群;步骤2:通过Lucene全文信息检索工具在Hadoop存储服务器集群中建立全文检索平台,并且通过LUCene全文信息检索工具在Hadoop存储服务器集群中分配出ES集群;步骤3:数据采集终端将流数据或文本数据输入到数据导入服务器,数据倒入服务器将流数据或文本数据发送给Hadoop存储服务器集群进行存储;步骤4:ES集群通过Lucene全文信息检索工具为Hadoop存储服务器集群存储的数据建立倒排文件索引结构的索引数据表,ES集群为索引数据表提供存储用的字段区;所述存储用的字段区中包含多个文档号存储字段区;步骤5:根据Lucene全文信息检索工具提供的底层存储结构,ES集群在倒排表链表中添加多个Payload载荷域,所有Payload载荷域均设于文档号存储字段区后边;步骤6:用户通过WEB界面服务器输入查询条件,WEB界面服务器将查询条件传送给ES集群;所述查询条件包括精确查询条件、范围查询条件、前缀查询条件和Payload范围查询条件;步骤7:ES集群通过Lucene全文信息检索工具首先根据精确查询条件、范围查询条件和前缀查询条件进行检索,相应得出精确查询结果、范围查询结果和前缀查询结果;步骤8:ES集群根据Payload范围查询条件分别对精确查询结果、范围查询结果和前缀查询结果进行过滤,得到精确查询结果集、范围查询结果集和前缀查询结果集;步骤9:ES集群将精确查询结果集、范围查询结果集和前缀查询结果集做交集计算,得出最终检索结果。[0008]所述ES集群为Elasticsearch服务器集群。[0009]所述Payload载荷域为存储范围查询字段的存储区,所述范围查询字段包括时间字段。[0010]在所述步骤4中,ES集群按以下步骤为索引数据表提供存储用的字段区:步骤S1:设定分片是每一个索引数据表的基本存储单位,每一个索引数据表均包含若干分片,ES集群根据索引数据表的分片将索引数据表分布存储到ES集群中的不同存储介质中;步骤S2:设定index表单为ES集群里的一张索引数据表,shard分片为index表单的一个分片;index表单中包含有多个shard分片;设定一个分片阈值;步骤S3:ES集群对index表单建立一个扩展index表单,ES集群读取index表单中最大的shard分片,判断shard分片是否到达分片阈值:是,则执行步骤S4,否,则执行步骤S5;ES集群对index表单建立一个扩展index表单的具体步骤如下:步骤A:ES集群获取index表单,并遍历index表单中的每一个shard分片,并做以下判断:若shard分片超出分片阈值,则执行步骤C;若shard分片不超出分片阈值,则执行步骤B;步骤B:查询shard分片下的扩展表的分片是否有超出分片阈值:是,则执行步骤C;否,则执行步骤S4;步骤C:ES集群根据分片阈值的大小计算超过分片阈值的shard分片应该切分的个数,校验扩展index表单是否存在或扩展index表单的shard分片是否已满:若不存在或shard分片己满,则继续扩展新的扩展index表单,并且shard分片个数是现有shard分片的个数的两倍,把新增的扩展index表单信息更新到路由表中;若存在,则列出所有超过分片阈值的shard分片列表,并降序排列后加入到Zookeeper的任务队列中;Zookeeper的任务队列根据shard分片列表生成多个作业任务;步骤S4:依据以下步骤将shard分片分裂:步骤D:ES集群从Zookeeper的任务队列中获取一个作业任务后,通知Ares入库程序停止对该表进行入库操作,判断Ares入库程序是否返回消息:是,则执行步骤E;否,则等待Ares入库程序回应;步骤E:ES集群按以下规则开始对shard分片进行分裂操作:步骤El:ES集群获取该shard分片的存储大小;步骤E2:将所述存储大小除以2后得出分片计算结果,将分片计算结果与分片阈值相比较:如果大于分片阈值,记录将所述存储大小除以2的次数N,执行步骤E2;如果小于分片阈值,记录2XN为要分裂的个数;步骤E3:获取该shard分片的数据总量total,分裂后的数据量大小K:K=total+2XN;步骤E4:通过ES集群查询接口给定一个时间T,T单位为秒,当T秒内获取的数据记为m,系数值为s,s的大小等于K+m;ES集群根据所述分裂的个数、数据量大小K和系数s对shard分片进行分裂;步骤F:ES集群对shard分片分裂后的新的分片进行编号,设定新的分片的编号为Shard[0]分片;步骤G:删除shard分片中的数据,将shard[0]分片中的数据替代shard分片中的数据,并把信息的shard[0]分片加入到index表单中;同时将shard分片中除shard[0]分片以外的分片写入到NFS共享的目录中,并扩展index表单的分片,并根据NFS共享的目录中的分片对index表单的分片做recovery恢复后,再次根据步骤C的方法将超过分片阈值的shard分片列表,并降序排列后加入到Zookeeper的任务队列中;步骤H:记录分裂操作的流程轨迹,并更新流程轨迹到路由表中,路由表根据新的流程轨迹生成新的路由规则,ES集群将数据根据新的路由规则入库或查询;步骤S5:分片扩展结束,重复执行步骤S1到步骤S4,直到ES集群为所有index表单均提供存储用的字段区。[0011]本发明所述的一种ElasticSearch查询加速方法,解决了ES原始数据查询时如果各个结果集数据量很大,则取交集和并集的计算会占用大量时间的问题,提高了索引效率;本发明实现了在单一子条件基础上做过滤的高效操作,提高了并发查询效率。附图说明[0012]图1是本发明的总体流程图;图2是本发明的步骤4的流程图;图3是本发明的步骤S3的流程图;图4是本发明的步骤S4的流程图。具体实施方式[0013]如图1〜图4所示的一种ElasticSearch查询加速方法,包括如下步骤:步骤1:建立全文索引系统,全文索引系统包括Hadoop存储服务器集群、WEB界面服务器、数据导入服务器和数据采集终端,数据采集终端通过互联网连接数据导入服务器,界面服务器和数据导入服务器均通过互联网连接Hadoop存储服务器集群;步骤2:通过Lucene全文信息检索工具在Hadoop存储服务器集群中建立全文检索平台,并且通过Lucene全文信息检索工具在Hadoop存储服务器集群中分配出ES集群;步骤3:数据采集终端将流数据或文本数据输入到数据导入服务器,数据倒入服务器将流数据或文本数据发送给Hadoop存储服务器集群进行存储;步骤4:ES集群通过Lucene全文信息检索工具为Hadoop存储服务器集群存储的数据建立倒排文件索引结构的索引数据表,ES集群为索引数据表提供存储用的字段区;所述存储用的字段区中包含多个文档号存储字段区;步骤5:根据Lucene全文信息检索工具提供的底层存储结构,ES集群在倒排表链表中添加多个Payload净荷域,所有Payload载荷域均设于文档号存储字段区后边;步骤6:用户通过WEB界面服务器输入查询条件,WEB界面服务器将查询条件传送给ES集群;所述查询条件包括精确查询条件、范围查询条件、前缀查询条件和Payload范围查询条件;步骤7:ES集群通过Lucene全文信息检索工具首先根据精确查询条件、范围查询条件和前缀查询条件进行检索,相应得出精确查询结果、范围查询结果和前缀查询结果;步骤8:ES集群根据Payload范围查询条件分别对精确查询结果、范围查询结果和前缀查询结果进行过滤,得到精确查询结果集、范围查询结果集和前缀查询结果集;步骤9:ES集群将精确查询结果集、范围查询结果集和前缀查询结果集做交集计算,得出最终检索结果。[0014]所述ES集群为Elasticsearch服务器集群。[0015]所述Payload载荷域为存储范围查询字段的存储区,所述范围查询字段包括时间字段。[0016]ES分片扩展采用Master-Slave结构,依赖于zookeeper通过数据表Index的分片列表生成多个作业,每个分裂模块调度这些作业,执行作业,完成分裂分片Shard的操作。[0017]在所述步骤4中,ES集群按以下步骤为索引数据表提供存储用的字段区:步骤S1:设定分片是每一个索引数据表的基本存储单位,每一个索引数据表均包含若干分片,ES集群根据索引数据表的分片将索引数据表分布存储到ES集群中的不同存储介质中;步骤S2:设定index表单为ES集群里的一张索引数据表,shard分片为index表单的一个分片;index表单中包含有多个shard分片;设定一个分片阈值;ES集群对index表单建立一个扩展index表单的前提是index表单有别名,建立的扩展index表单有同样的别名,并且扩展index表单的shard分片个数与index表单相同;步骤S3:ES集群对index表单建立一个扩展index表单,ES集群读取index表单中最大的shard分片,判断shard分片是否到达分片阈值:是,则执行步骤S4,否,则执行步骤S5;ES集群对index表单建立一个扩展index表单的具体步骤如下:步骤A:ES集群获取index表单,并遍历index表单中的每一个shard分片,并做以下判断:若shard分片超出分片阈值,则执行步骤C;若shard分片不超出分片阈值,则执行步骤B;步骤B:查询shard分片下的扩展表的分片是否有超出分片阈值:是,则执行步骤C;否,则执行步骤S4;步骤C:ES集群根据分片阈值的大小计算超过分片阈值的shard分片应该切分的个数,校验扩展index表单是否存在或扩展index表单的shard分片是否已满:若不存在或shard分片已满,则继续扩展新的扩展index表单,并且shard分片个数是现有shard分片的个数的两倍,把新增的扩展index表单信息更新到路由表中;若存在,则列出所有超过分片阈值的shard分片列表,并降序排列后加入到Zookeeper的任务队列中;Zookeeper的任务队列根据shard分片列表生成多个作业任务;ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是G〇〇g1e的Chubby—个开源的实现,是Hadoop和Hbase的重要组件。[0018]步骤S4:依据以下步骤将shard分片分裂:步骤D:ES集群从Zookeeper的任务队列中获取一个作业任务后,通知Ares入库程序停止对该表进行入库操作,判断Ares入库程序是否返回消息:是,则执行步骤E;否,则等待Ares入库程序回应;步骤E:ES集群按以下规则开始对shard分片进行分裂操作:步骤El:ES集群获取该shard分片的存储大小;步骤E2:将所述存储大小除以2后得出分片计算结果,将分片计算结果与分片阈值相比较:如果大于分片阈值,记录将所述存储大小除以2的次数N,执行步骤E2;如果小于分片阈值,记录2XN为要分裂的个数;步骤E3:获取该shard分片的数据总量total,分裂后的数据量大小K:K=total+2XN;步骤E4:通过ES集群查询接口给定一个时间T,T单位为秒,当T秒内获取的数据记为m,系数值为s,s的大小等于K+m;ES集群根据所述分裂的个数、数据量大小K和系数s对shard分片进行分裂;步骤F:ES集群对shard分片分裂后的新的分片进行编号,设定新的分片的编号为shard[0]分片;步骤G:删除shard分片中的数据,将shard[0]分片中的数据替代shard分片中的数据,并把信息的shard[0]分片加入到index表单中;同时将shard分片中除shard[0]分片以外的分片写入到NFS共享的目录中,并扩展index表单的分片,并根据NFS共享的目录中的分片对index表单的分片做recovery恢复后,再次根据步骤C的方法将超过分片阈值的shard分片列表,并降序排列后加入到Zookeeper的任务队列中;步骤H:记录分裂操作的流程轨迹,并更新流程轨迹到路由表中,路由表根据新的流程轨迹生成新的路由规则,ES集群将数据根据新的路由规则入库或查询;步骤S5:分片扩展结束,重复执行步骤S1到步骤S4,直到ES集群为所有index表单均提供存储用的字段区。[0019]使用时,如图1所示,为每个字段增加Payload域,数据查询方式相应发生改变,例如有查询条件AandCandDandB,其中A为精确查询条件、C为范围查询条件、D为前缀查询条件、B为Payload范围查询条件。根据本发明提供的方法,把子条件A、C、D下发,分别查出各自的查询结果,各自查询到结果后,再通过Payload条件B进行结果过滤,减小各个子结果集的数据量,最后取三批过滤后的结果交集得到最终结果。[0020]在Lucene全文信息检索工具简称Lucene和ES集群中添加一系列支持Payload域查询的接口,使得用户可以像调用其他Elasticsearch接口一样直接调用ES的Payload的接口,不需感知底层Lucene的Payload域存储结构和接口,实现了对Payload域的有效利用;对“单条件等值+范围”、“前缀条件+范围”、“模糊条件+范围”、“IN条件+范围”、“范围+范围”这五种查询情况做Payload封装。[0021]所述数据采集终端为万兆交换机,万兆交换机可以从互联网获取大量的数据源,数据源的格式为数据文件与流式数据;ES集群向Hadoop存储服务器集群提供数据入库、查询分析与管理监控接口,存储介质为本地磁盘,ES集群支撑各种Spark组件;WEB界面服务器通过Zues-client和Loki与ES集群对接;Zues-client即封装的ES接口,供上层调用;Loki即统一索引的查询中间件,负责接收上层用户的结构化数据、非结构化数据、混合数据查询请求,分析切分转发请求到ES,并根据返回的数据id从结构化数据系统、非结构化数据系统获取数据。[0022]本发明所述的一种ElasticSearch查询加速方法,解决了ES原始数据查询时如果各个结果集数据量很大,则取交集和并集的计算会占用大量时间的问题,提高了索引效率;本发明实现了在单一子条件基础上做过滤的高效操作,提高了并发查询效率。

权利要求:1.一种ElasticSearch查询加速方法,其特征在于:包括如下步骤:步骤1:建立全文索引系统,全文索引系统包括Hadoop存储服务器集群、WEB界面服务器、数据导入服务器和数据采集终端,数据采集终端通过互联网连接数据导入服务器,WEB界面服务器和数据导入服务器均通过互联网连接Hadoop存储服务器集群;步骤2:通过Lucene全文信息检索工具在Hadoop存储服务器集群中建立全文检索平台,并且通过Lucene全文信息检索工具在Hadoop存储服务器集群中分配出ES集群;步骤3:数据采集终端将流数据或文本数据输入到数据导入服务器,数据倒入服务器将流数据或文本数据发送给Hadoop存储服务器集群进行存储;步骤4:ES集群通过Lucene全文信息检索工具为Hadoop存储服务器集群存储的数据建立倒排文件索引结构的索引数据表,ES集群为索引数据表提供存储用的字段区;所述存储用的字段区中包含多个文档号存储字段区;步骤5:根据Lucene全文信息检索工具提供的底层存储结构,ES集群在倒排表链表中添加多个Payload载荷域,所有Payload载荷域均设于文档号存储字段区后边;步骤6:用户通过WEB界面服务器输入查询条件,WEB界面服务器将查询条件传送给ES集群;所述查询条件包括精确查询条件、范围查询条件、前缀查询条件和Payload范围查询条件;步骤7:ES集群通过Lucene全文信息检索工具首先根据精确查询条件、范围查询条件和前缀查询条件进行检索,相应得出精确查询结果、范围查询结果和前缀查询结果;步骤8:ES集群根据Payload范围查询条件分别对精确查询结果、范围查询结果和前缀查询结果进行过滤,得到精确查询结果集、范围查询结果集和前缀查询结果集;步骤9:ES集群将精确查询结果集、范围查询结果集和前缀查询结果集做交集计算,得出最终检索结果。2.如权利要求1所述的一种ElasticSearch查询加速方法,其特征在于:所述ES集群为Elasticsearch服务器集群。3.如权利要求1所述的一种ElasticSearch查询加速方法,其特征在于:所述Payload载荷域为存储范围查询字段的存储区,所述范围查询字段包括时间字段。4.如权利要求1所述的一种ElasticSearch查询加速方法,其特征在于:在所述步骤4中,ES集群按以下步骤为索引数据表提供存储用的字段区:步骤S1:设定分片是每一个索引数据表的基本存储单位,每一个索引数据表均包含若干分片,ES集群根据索引数据表的分片将索引数据表分布存储到ES集群中的不同存储介质中;步骤S2:设定index表单为ES集群里的一张索引数据表,shard分片为index表单的一个分片;index表单中包含有多个shard分片;设定一个分片阈值;步骤S3:ES集群对index表单建立一个扩展index表单,ES集群读取index表单中最大的shard分片,判断shard分片是否到达分片阈值:是,则执行步骤S4,否,则执行步骤S5;ES集群对index表单建立一个扩展index表单的具体步骤如下:步骤A:ES集群获取index表单,并遍历index表单中的每一个shard分片,并做以下判断:若shard分片超出分片阈值,贝!J执行步骤C;若shard分片不超出分片阈值,贝J执行步骤B;步骤B:查询shard分片下的扩展表的分片是否有超出分片阈值:是,则执行步骤C;否,则执行步骤S4;步骤C:ES集群根据分片阈值的大小计算超过分片阈值的shard分片应该切分的个数,校验扩展index表单是否存在或扩展index表单的shard分片是否已满:若不存在或shard分片已满,则继续扩展新的扩展index表单,并且shard分片个数是现有shard分片的个数的两倍,把新增的扩展index表单信息更新到路由表中;若存在,则列出所有超过分片阈值的shard分片列表,并降序排列后加入到Zookeeper的任务队列中;Zookeeper的任务队列根据shard分片列表生成多个作业任务;步骤S4:依据以下步骤将shard分片分裂:步骤D:ES集群从Zookeeper的任务队列中获取一个作业任务后,通知Ares入库程序停止对该表进行入库操作,判断Ares入库程序是否返回消息:是,则执行步骤E;否,则等待Ares入库程序回应;步骤E:ES集群按以下规则开始对shard分片进行分裂操作:步骤E1:ES集群获取该shard分片的存储大小;步骤E2:将所述存储大小除以2后得出分片计算结果,将分片计算结果与分片阈值相比较:如果大于分片阈值,记录将所述存储大小除以2的次数N,执行步骤E2;如果小于分片阈值,记录2XN为要分裂的个数;步骤E3:获取该shard分片的数据总量total,分裂后的数据量大小K:K=total+2XN;步骤E4:通过ES集群查询接口给定一个时间T,T单位为秒,当T秒内获取的数据记为m,系数值为s,s的大小等于K+m;ES集群根据所述分裂的个数、数据量大小K和系数s对shard分片进行分裂;步骤F:ES集群对shard分片分裂后的新的分片进行编号,设定新的分片的编号为shard[〇]分片;步骤G:删除shard分片中的数据,将shard[0]分片中的数据替代shard分片中的数据,并把信息的shard[0]分片加入到index表单中;同时将shard分片中除shard[0]分片以外的分片写入到NFS共享的目录中,并扩展index表单的分片,并根据NFS共享的目录中的分片对index表单的分片做recovery恢复后,再次根据步骤C的方法将超过分片阈值的shard分片列表,并降序排列后加入到Zooke印er的任务队列中;步骤H:记录分裂操作的流程轨迹,并更新流程轨迹到路由表中,路由表根据新的流程轨迹生成新的路由规则,ES集群将数据根据新的路由规则入库或查询;步骤S5:分片扩展结束,重复执行步骤S1到步骤S4,直到ES集群为所有index表单均提供存储用的字段区。

百度查询: 南京烽火星空通信发展有限公司 一种ElasticSearch查询加速方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。