字段簇

阅读(84) 标签: 字段簇, 标记字段, 动词,

在同一个表中,可能会有多个宏字段共同描述一个概念,可以将它们组合起来,标记为字段簇。可以在宏字段下方区域中定义字段簇,如:

在定义字段簇时,右侧的标记字段,用来表示当前字段簇的最关键信息。

 

字段簇可以将宏字段分为若干组,在查询时更有效地判断。各个字段簇中的宏字段尽量不要多选,以防止查询时出现歧义。

在口语化的语句,并不一定使用字段词以及它的值这样的名词式查询,还可能会使用动词描述。举个例子,“出生日期是1990年”也可能被描述为“生于1990年”或者“1990年出生”这样的方式。有了字段簇定义,就可以通过定义动词与字段簇的关联,解决这样的问题。选择字段簇右侧的动词选项卡,可以定义动词,如:

与字段词类似,可以同时定义多个动词,其间用逗号分隔。此时可以在查询语句中使用这种动词了,如:

在这里,将“入职”左侧的条件“2010年之前”作为“左簇”与字段簇“入职”匹配查询。在上面的动词定义中,“入职”也可能会和“右簇”匹配使用,如:

这里动词“入职”右侧的条件“超过10年”作为“右簇”与设定的字段簇“入职”匹配查询,此时能够匹配的是字段簇中的“雇用年数”这个宏字段,执行MQL后,结果如下:

在定义动词时,应该避免重名,以避免冗余结果。如果动词的左右均可能与同一个字段簇匹配,可以选择同一个字段簇。

现在把元数据中的各个表全部导入到汉语查询的词典中,并按需要修改宏字段的字段词:

可以看到,订单表ORDERS中,存在很多的“城市”“日期”这样的数据,此时,定义字段簇会更为必要:

通过定义动词设置查询时动词与字段簇的相关性:

可以看到,类似“发往”这样的动词,会同时和左簇和右簇匹配,如“A发往B”,A有可能表示发货地或发货时间,B也有可能表示收货地或客户,这种情况称其为双向动词。通过定义字段簇和动词,都可以完成查询,如:

在字段簇中包含多个字段,同一个字段簇中各个字段的类型或者对应的维应该设置为不同的,所以在上面的搜索语句中,“北京”“青岛”这样的“城市”维中的常数词,或者“MAISD”这样的客户编码,都未指明字段,但通过动词可以在对应的字段簇中,按照类型或者维来自动匹配,得到所需要的结果。如果查询时使用多个查询词,也会自动判断,如:

上面的结果中,会同时包含北京发货,发往青岛或者大连两个城市的订单编码。

如果搜索语句中的条件中使用了不同类型的常数,也会按不同类型匹配到字段簇的不同字段,如: