System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于二进制进行标签存储和查询的方法及其系统技术方案_技高网

一种基于二进制进行标签存储和查询的方法及其系统技术方案

技术编号:40042900 阅读:10 留言:0更新日期:2024-01-16 20:00
本发明专利技术提供了一种基于二进制进行标签存储和查询的方法,该方法为:1、把已知的标签按任意顺序排列后固定下来,用n个二进制位来表示是否包含n个标签,每个二进制位对应一个标签,2、当需要设置标签数据时,根据数据所包含的标签把对应的二进制位设为1,其余二进制位设为0,接着把二进制转化成十进制得到一个数字x,设置数据的标签字段为tag_a=x,插入数据库;3、查询包含设定标签的数据时,根据步骤1的标签顺序,把标签所属位置的二进制值用1表示,其余用0表示,即把设定标签转换成二进制值taga;接着查询数据表中字段"tag_a"列与二进制值"taga"的按位与运算结果等于二进制值"taga"的数据,该数据即为设定标签要的查询结果;能降低数据存储的容量。

【技术实现步骤摘要】

本专利技术涉及数据存储,特别是一种基于二进制进行标签存储的方法及其系统。


技术介绍

1、随着互联网的普及,移动端应用获客成本越来越高,这也使得公司对用户运营提出了更高的要求,不仅需要精细化更需要个性化。

2、解决这一问题的办法之一,就是建立相对完备的标签系统。这样的标签系统需要与业务进行紧密结合,从业务中获取养分—用户标签,同时也要服务于业务—给用户提供更加精准和个性的服务。

3、传统的标签系统通常基于文本或字符串形式,因此很容易受限于标签数量的上限,这会导致难以处理大规模的标签集合,或者需要使用复杂的数据结构来存储和处理标签。当数据包含标签数量非常多时,传统标签系统往往无法简洁地表示,使得数据存储容量激增,增加了开发和维护的复杂性。


技术实现思路

1、为克服上述问题,本专利技术的目的是提供一种基于二进制进行标签存储的方法,能降低数据存储的容量,提高系统的性能。

2、本专利技术采用以下方案实现:一种基于二进制进行标签存储和查询的方法,所述方法包括如下步骤:

3、步骤1、把已知的标签按任意顺序排列后固定下来,用n个二进制位来表示是否包含n个标签,每个二进制位对应一个标签,二进制值为0表示不包含此位置标签,二进制值为1表示包含此位置标签;

4、步骤2、当需要设置标签数据时,根据数据所包含的标签把对应的二进制位设为1,其余二进制位设为0,接着把二进制转化成十进制得到一个数字x,设置数据的标签字段为tag_a=x,插入数据库;p>

5、步骤3、查询包含设定标签的数据时,根据步骤1的标签顺序,把标签所属位置的二进制值用1表示,其余用0表示,即把设定标签转换成二进制值taga;接着查询数据表中字段"tag_a"列与二进制值"taga"的按位与运算结果等于二进制值"taga"的数据,该数据即为设定标签要的查询结果。

6、进一步的,所述方法还包括步骤4、当需要增加第n+1个新标签时,往已有的标签顺序最左边插入新标签。

7、进一步的,所述步骤3中查询数据表中字段"tag_a"列与二进制值"taga"的按位与运算结果等于二进制值"taga"的数据,该查询语句为select*from table where(tag_a&b‘@taga’)=b‘@taga’;其中@是mysql中的查询语法,@taga是表示设定标签转换成的一个二进制即为一个变量;b是查询语句固定的格式,用于代表二进制;b‘@taga’是一个二进制数,表示需要查询的标签模式,每个位对应一个标签的存在与否;(tag_a&b‘@taga’)表示表中字段"tag_a"列与二进制值"taga"的按位与运算,并得到一个新的二进制数。

8、本专利技术还提供了一种基于二进制进行标签存储和查询的系统,所述系统包括标签设置模块、标签存储模块、以及标签查询模块;

9、所述标签设置模块,把已知的标签按任意顺序排列后固定下来,用n个二进制位来表示是否包含n个标签,每个二进制位对应一个标签,二进制值为0表示不包含此位置标签,二进制值为1表示包含此位置标签;

10、所述标签存储模块,当需要设置标签数据时,根据数据所包含的标签把对应的二进制位设为1,其余二进制位设为0,接着把二进制转化成十进制得到一个数字x,设置数据的标签字段为tag_a=x,插入数据库;

11、所述标签查询模块,查询包含设定标签的数据时,根据标签设置模块的标签顺序,把标签所属位置的二进制值用1表示,其余用0表示,即把设定标签转换成二进制值taga;接着查询数据表中字段"tag_a"列与二进制值"taga"的按位与运算结果等于二进制值"taga"的数据,该数据即为设定标签要的查询结果。

12、进一步的,所述系统还包括标签插入模块,所述标签插入模块,当需要增加第n+1个新标签时,往已有的标签顺序最左边插入新标签。

13、进一步的,所述标签查询模块中查询数据表中字段"tag_a"列与二进制值"taga"的按位与运算结果等于二进制值"taga"的数据,该查询语句为select*from table where(tag_a&b‘@taga’)=b‘@taga’;其中@是mysql中的查询语法,@taga是表示设定标签转换成的一个二进制即为一个变量;b是查询语句固定的格式,用于代表二进制;b‘@taga’是一个二进制数,表示需要查询的标签模式,每个位对应一个标签的存在与否;(tag_a&b‘@taga’)表示表中字段"tag_a"列与二进制值"taga"的按位与运算,并得到一个新的二进制数。

14、本专利技术的有益效果在于:本专利技术提供一种基于二进制进行标签存储和查询的方法,使用位运算和位操作,可以高效地表示和操作大规模的标签集合,它利用二进制位的状态以及位操作的快速性能,提供了轻量级、高效的标签表示方式;从而能降低数据存储的容量。

本文档来自技高网...

【技术保护点】

1.一种基于二进制进行标签存储和查询的方法,其特征在于:所述方法包括如下步骤:

2.根据权利要求1所述的一种基于二进制进行标签存储和查询的方法,其特征在于:所述方法还包括步骤4、当需要增加第n+1个新标签时,往已有的标签顺序最左边插入新标签。

3.根据权利要求1所述的一种基于二进制进行标签存储和查询的方法,其特征在于:所述步骤3中查询数据表中字段"tag_a"列与二进制值"taga"的按位与运算结果等于二进制值"taga"的数据,该查询语句为select*from table where(tag_a&b‘@taga’)=b‘@taga’;其中@是mysql中的查询语法,@taga是表示设定标签转换成的一个二进制即为一个变量;b是查询语句固定的格式,用于代表二进制;b‘@taga’是一个二进制数,表示需要查询的标签模式,每个位对应一个标签的存在与否;(tag_a&b‘@taga’)表示表中字段"tag_a"列与二进制值"taga"的按位与运算,并得到一个新的二进制数。

4.一种基于二进制进行标签存储和查询的系统,其特征在于:所述系统包括标签设置模块、标签存储模块、以及标签查询模块;

5.根据权利要求4所述的一种基于二进制进行标签存储和查询的系统,其特征在于:所述系统还包括标签插入模块,所述标签插入模块,当需要增加第n+1个新标签时,往已有的标签顺序最左边插入新标签。

6.根据权利要求4所述的一种基于二进制进行标签存储和查询的系统,其特征在于:所述标签查询模块中查询数据表中字段"tag_a"列与二进制值"taga"的按位与运算结果等于二进制值"taga"的数据,该查询语句为select*from table where(tag_a&b‘@taga’)=b‘@taga’;其中@是mysql中的查询语法,@taga是表示设定标签转换成的一个二进制即为一个变量;b是查询语句固定的格式,用于代表二进制;b‘@taga’是一个二进制数,表示需要查询的标签模式,每个位对应一个标签的存在与否;(tag_a&b‘@taga’)表示表中字段"tag_a"列与二进制值"taga"的按位与运算,并得到一个新的二进制数。

...

【技术特征摘要】

1.一种基于二进制进行标签存储和查询的方法,其特征在于:所述方法包括如下步骤:

2.根据权利要求1所述的一种基于二进制进行标签存储和查询的方法,其特征在于:所述方法还包括步骤4、当需要增加第n+1个新标签时,往已有的标签顺序最左边插入新标签。

3.根据权利要求1所述的一种基于二进制进行标签存储和查询的方法,其特征在于:所述步骤3中查询数据表中字段"tag_a"列与二进制值"taga"的按位与运算结果等于二进制值"taga"的数据,该查询语句为select*from table where(tag_a&b‘@taga’)=b‘@taga’;其中@是mysql中的查询语法,@taga是表示设定标签转换成的一个二进制即为一个变量;b是查询语句固定的格式,用于代表二进制;b‘@taga’是一个二进制数,表示需要查询的标签模式,每个位对应一个标签的存在与否;(tag_a&b‘@taga’)表示表中字段"tag_a"列与二进制值"taga"的按位与运算,并得到一个新的二进制数。

4.一种基于二进制进行标签...

【专利技术属性】
技术研发人员:刘德建叶伟李佳
申请(专利权)人:福建天晴在线互动科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1