可动态扩展的检索方法与装置与流程

文档序号:20264522发布日期:2020-04-03 18:13阅读:330来源:国知局
可动态扩展的检索方法与装置与流程

本发明涉及数据检索领域,具体而言涉及一种可动态扩展搜索属性及属性值的检索方法与装置。



背景技术:

在企业应用和管理系统中,指定属性搜索是一种常见的检索方式,首先定义待搜索数据的属性,在搜索属性下面定义好各属性的属性值,例如:一种物品多种属性,颜色、尺寸、产地等,每种属性都有若干种值,尺寸有s、m、x、xl、xxl等。

在生成业务数据时,需要把各属性作为业务数据的字段,并把属性下的属性值存入对应的字段中,这样在搜索时才能按照不同的属性进行筛选。例如:物品作为业务数据需要创建颜色(color)、尺寸(size)、产地(source)这3个字段,并把颜色、尺寸、产地对应的值red、xxl、上海分别存入数据库中。

图1示例性地表示了现有技术中多属性检索的示例,检索过程包括:第一步:根据业务场景定义搜索属性及属性值,不同业务场景中的搜索属性及属性值是不同的,例如:属性为size,属性值有s、m、x、xl、xxl;属性为color,属性值有red、blue、green、white;第二步:为业务数据添加属性字段;第三步:生成业务数据,添加选择的属性值到具体字段(s003)中;第四步:搜索数据,按照条件字段进行精确搜索,例如:要搜索尺寸为s,且颜色为红色的数据时,条件为size=’s’andcolor=’red’。

但在实际应用处理过程中,如果由于业务要求,需要动态增加产地这个属性,这时就需要在第一步中重新定义新的属性及属性值;在第二步中为业务表添加新的字段;在第三步中将选择的属性值重新录入字段中;在第四步中也需要修改查询条件,其过程复杂,动态扩展较差。



技术实现要素:

本发明目的在于提供一种可动态扩展的检索方法,在自定义搜索属性的业务场景中,实现根据不同用户定义不同搜索属性,同时还具备动态增加属性,完成多条件搜索的功能。

为了实现上述目的,本发明所采用的技术方案如下:

一种可动态扩展的检索方法,包括以下步骤:

构建动态可扩展的属性,包括创建属性表和属性值表以及新建自定义属性和属性值,属性表被设置用以存储基础的属性,属性值表用来存储基础属性下的可选值;

构建业务数据,为业务数据选择具体的属性值type,而后对属性值type进行处理,并将处理结果赋值给业务数据的属性值typevalue,其中type代表自定义创建的属性值,typevalue代表业务数据的属性值;

获取搜索条件,对待搜索的属性的属性值type进行处理,并将结果赋值给搜索条件condition;以及

判断搜索方式为and或者or,并根据业务数据的属性值typevalue和搜索条件condition的运算进行检索操作,其中搜索方式and是指属性值在选择时只能单选,搜索方式or是指属性值在选择时是多选。

优选地,所述构建动态可扩展的属性的操作中,属性值表与属性表之间为多对一的关系。

优选地,所述构建动态可扩展的属性的操作中,在新建自定义属性和属性值过程中,支持动态添加多个属性以及属性值,其中创建属性值时,属性值满足:属性值是正整数,且初次创建的属性值是1;后续创建的属性值依次递增1。

优选地,前述构建业务数据的操作中,对选择的属性值type的处理包括:

循环对属性值type进行2n运算,并对计算结果进行累加,最终将累加结果赋值给业务数据属性值typevalue,其中n的值为属性值type。

优选地,前述获取搜索条件包括以下操作:

循环对待搜索的属性值type进行2n运算,并对计算结果进行累加,最终将累加结果赋值给搜索条件condition;其中n的值为所述属性值type。

优选地,前述检索操作包括以下操作:

1.如果搜索方式是and,则对业务数据的属性值typevalue和搜索条件condition进行与运算,运算结果等于condition则为符合条件的数据

2.如果搜索方式是or,则对业务数据的属性值typevalue和搜索条件condition进行与运算,运算结果大于0则为符合条件的数据。

根据本发明,还提出一种可动态扩展的检索装置,包括:

用于构建动态可扩展的属性的模块,包括用于创建属性表的模块、用于创建属性值表的模块以及用于新建自定义属性和属性值的模块,属性表被设置用以存储基础的属性,属性值表用来存储基础属性下的可选值;

用于构建业务数据的模块,被设置成为业务数据选择具体的属性值type,而后对属性值type进行处理,并将处理结果赋值给业务数据的属性值typevalue,其中type代表自定义创建的属性值,typevalue代表业务数据的属性值;

用于获取搜索条件,对待搜索的属性的属性值type进行处理,并将结果赋值给搜索条件condition的模块;以及

用于判断搜索方式为and或者or,并根据业务数据的属性值typevalue和搜索条件condition的运算进行检索操作的模块,其中搜索方式and是指属性值在选择时只能单选,搜索方式or是指属性值在选择时是多选。

优选地,所述用于构建业务数据的模块包括用于对选择的属性值type的处理模块,用于:

循环对属性值type进行2n运算,并对计算结果进行累加,最终将累加结果赋值给业务数据属性值typevalue,其中n的值为属性值type。

优选地,前述的获取搜索条件包括以下操作:

循环对待搜索的属性值type进行2n运算,并对计算结果进行累加,最终将累加结果赋值给搜索条件condition;其中n的值为所述属性值type。

优选地,前述检索操作包括以下操作:

1.如果搜索方式是and,则对业务数据的属性值typevalue和搜索条件condition进行与运算,运算结果等于condition则为符合条件的数据

2.如果搜索方式是or,则对业务数据的属性值typevalue和搜索条件condition进行与运算,运算结果大于0则为符合条件的数据

由以上本发明的技术方案,可在自定义搜索属性的业务场景中,实现根据不同用户定义不同搜索属性,同时还具备动态增加属性,完成多条件搜索的功能。

应当理解,前述构思以及在下面更加详细地描述的额外构思的所有组合只要在这样的构思不相互矛盾的情况下都可以被视为本公开的发明主题的一部分。另外,所要求保护的主题的所有组合都被视为本公开的发明主题的一部分。

结合附图从下面的描述中可以更加全面地理解本发明教导的前述和其他方面、实施例和特征。本发明的其他附加方面例如示例性实施方式的特征和/或有益效果将在下面的描述中显见,或通过根据本发明教导的具体实施方式的实践中得知。

附图说明

附图不意在按比例绘制。在附图中,在各个图中示出的每个相同或近似相同的组成部分可以用相同的标号表示。为了清晰起见,在每个图中,并非每个组成部分均被标记。现在,将通过例子并参考附图来描述本发明的各个方面的实施例,其中:

图1是现有技术中多条件检索的示意图。

图2是本发明的可动态扩展的检索方法中构建动态可扩展属性的示例。

图3是本发明的可动态扩展的检索方法中构建业务数据的示例。

图4是本发明的可动态扩展的检索方法中检索过程的示例。

图5是本发明的属性结构表示例。

图6是本发明的属性值表结构的示例。

图7是本发明的属性及属性值创建过程示例。

图8是本发明的属性及属性值新建完成后的展示效果示例。

图9是本发明的添加业务数据时选择属性效果展示示例。

图10是本发明的属性值单选方式搜索示例。

图11是本发明的属性值复现方式搜索示例。

图12是本发明的业务数据新建属性示例。

图13是本发明的业务场景与业务数据示例。

具体实施方式

为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。

在本公开中参照附图来描述本发明的各方面,附图中示出了许多说明的实施例。本公开的实施例不必定意在包括本发明的所有方面。应当理解,上面介绍的多种构思和实施例,以及下面更加详细地描述的那些构思和实施方式可以以很多方式中任意一种来实施,这是因为本发明所公开的构思和实施例并不限于任何实施方式。另外,本发明公开的一些方面可以单独使用,或者与本发明公开的其他方面的任何适当组合来使用。

本发明旨在提供一种可动态扩展搜索属性及属性值的检索方法,利用2n(n>1的正整数)和2m(m>1的正整数)进行与运算,实现对属性和属性值可以随着业务的变化而动态增加,同时在存储业务数据的属性值时,只需要一个字段即可存储所有的属性值,不会因业务变化而改变存储结构。

结合图2-4所示,本发明的具体实施例的可动态扩展搜索属性及属性值的检索方法包括以下过程:

构建动态可扩展的属性,包括创建属性表和属性值表以及新建自定义属性和属性值,属性表被设置用以存储基础的属性,属性值表用来存储基础属性下的可选值;

构建业务数据,为业务数据选择具体的属性值type,而后对属性值type进行处理,并将处理结果赋值给业务数据的属性值typevalue,其中type代表自定义创建的属性值,typevalue代表业务数据的属性值;

获取搜索条件,对待搜索的属性的属性值type进行处理,并将结果赋值给搜索条件condition;以及

判断搜索方式为and或者or,并根据业务数据的属性值typevalue和搜索条件condition的运算进行检索操作,其中搜索方式and是指属性值在选择时只能单选,搜索方式or是指属性值在选择时是多选。

优选地,所述构建动态可扩展的属性的操作中,属性值表与属性表之间为多对一的关系。

优选地,所述构建动态可扩展的属性的操作中,在新建自定义属性和属性值过程中,支持动态添加多个属性以及属性值,其中创建属性值时,属性值满足:属性值是正整数,且初次创建的属性值是1;后续创建的属性值依次递增1。

优选地,前述构建业务数据的操作中,对选择的属性值type的处理包括:

循环对属性值type进行2n运算,并对计算结果进行累加,最终将累加结果赋值给业务数据属性值typevalue,其中n的值为属性值type。

即typevalue=typevalue+2type。

优选地,前述获取搜索条件包括以下操作:

循环对待搜索的属性值type进行2n运算,并对计算结果进行累加,最终将累加结果赋值给搜索条件condition;其中n的值为所述属性值type。

即condition=condition+2type。

优选地,前述检索操作包括以下操作:

1.如果搜索方式是and,则对业务数据的属性值typevalue和搜索条件condition进行与运算,运算结果等于condition则为符合条件的数据

2.如果搜索方式是or,则对业务数据的属性值typevalue和搜索条件condition进行与运算,运算结果大于0则为符合条件的数据。

在实际操作和应用过程中,可以采用下述具体实现:

如果搜索方式是and,则对业务数据按下面公式进行过滤(其中&是与操作符):condition&typevalue=condition;

如果搜索方式是or,则对业务数据按下面公式进行过滤(其中&是与操作符):condition&typevalue>0。

由此,可在自定义搜索属性的业务场景中,实现根据不同用户定义不同搜索属性,同时还具备动态增加属性,完成多条件搜索的功能。

下面结合附图所示,更加具体地描述前述方法的实施。

第一部分构建动态可扩展的属性,如图5、6、7、8所示,具体操作包括:

第一步:创建属性表结构,属性表用来存储自定义的属性;

第二步:创建属性值表结构,属性值表用来存储自定义属性下的可选值,它与属性表属于多对一的关系;

第三步:新建自定义属性和属性值,可动态增加多个属性,数据新建完成后展示见p_004,创建属性值时,属性值必须满足下面条件:属性值是正整数,且初次创建的属性值是1;后续创建的属性值依次递增1。例如:第一个属性值type=1,第二个属性值type=2,第三个属性值type=3,以此类推。

第二部分构建业务数据,结合图9所示,具体操作包括:

第一步:为业务数据增加字段typevalue,用于存储选择的属性值;

第二步:添加业务数据,选择属性值;

第三步:对选择的属性值按照指定的计算规则计算,并将结果存入typevalue中,对所有的属性值type的计算规则如下:

fortypeintypelist:

typevalue=typevalue+2type。

第三部分数据检索结合图10-13,具体操作包括:

第一步:选择待搜索的属性,并对其下的属性值type按下面规则计算,并存储condition中:

fortypeintypelist:

condition=condition+2type;

第二步:判断搜索方式是and还是or,搜索方式and是指:属性值在选择时只能单选,见p_006;搜索方式or是指:属性值在选择时是多选,见p_007。

1.如果搜索方式是and,则对业务数据按下面公式进行过滤(其中&是与操作符):condition&typevalue=condition;

2.如果搜索方式是or,则对业务数据按下面公式进行过滤(其中&是与操作符):condition&typevalue>0;

下面以设备管理为例进行说明。

设备拥有属性公司和型号,公司属性下有小视、中移2个属性值,型号属性下有ms-300、ms-500、mg-300这3个属性值,新建属性和属性值时,属性公司下的小视(属性值名称)值为1,属性公司中移(属性值名称)值为2,属性型号下的ms-300(属性值名称)值为3,属性型号下的ms-500(属性值名称)值为4、属性型号下的mg-300(属性值名称)值为5。

创建设备a(业务数据),打开属性,选择(单选)具体的属性值,如:公司选择小视,型号选择ms-500,根据业务数据属性值的计算规则,得到设备的属性值为21+24=18。创建设备b,公司选择中移,型号选择ms-500,得到设备属性值为22+24=20。

搜索设备,打开属性,选择(单选)具体的属性值,如:搜索公司是小视且型号为ms-500的设备,根据搜索条件计算规则,得到搜索条件的值为21+24=18,然后根据过滤规则进行过滤,a设备符合条件(18&18=18),b设备不符合条件(20&18!=18)。

再如:搜索型号是ms-500的设备,搜索条件的值为24=16,根据过滤规则进行过滤,a设备(18&16=16)和b(20&16=16)设备均符合条件。

再如:搜索公司为小视或者公司为中移的设备,搜索条件的值为21+22=6,根据过滤规则进行过滤,a设备(18&6>0)和b(20&6>0)设备均符合条件。

结合图示,本发明的另一些实施例还可以根据前述实施例配置如下:

一种可动态扩展的检索装置,包括:

用于构建动态可扩展的属性的模块,包括用于创建属性表的模块、用于创建属性值表的模块以及用于新建自定义属性和属性值的模块,属性表被设置用以存储基础的属性,属性值表用来存储基础属性下的可选值;

用于构建业务数据的模块,被设置成为业务数据选择具体的属性值type,而后对属性值type进行处理,并将处理结果赋值给业务数据的属性值typevalue,其中type代表自定义创建的属性值,typevalue代表业务数据的属性值;

用于获取搜索条件,对待搜索的属性的属性值type进行处理,并将结果赋值给搜索条件condition的模块;以及

用于判断搜索方式为and或者or,并根据业务数据的属性值typevalue和搜索条件condition的运算进行检索操作的模块,其中搜索方式and是指属性值在选择时只能单选,搜索方式or是指属性值在选择时是多选。

优选地,所述用于构建业务数据的模块包括用于对选择的属性值type的处理模块,用于:

循环对属性值type进行2n运算,并对计算结果进行累加,最终将累加结果赋值给业务数据属性值typevalue,其中n的值为属性值type。

优选地,前述的获取搜索条件包括以下操作:

循环对待搜索的属性值type进行2n运算,并对计算结果进行累加,最终将累加结果赋值给搜索条件condition;其中n的值为所述属性值type。

优选地,前述检索操作包括以下操作:

1.如果搜索方式是and,则对业务数据的属性值typevalue和搜索条件condition进行与运算,运算结果等于condition则为符合条件的数据

2.如果搜索方式是or,则对业务数据的属性值typevalue和搜索条件condition进行与运算,运算结果大于0则为符合条件的数据。

虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1