CN105574070A - 内容管理系统及在其中报告多个对象的计算机实现方法 - Google Patents
内容管理系统及在其中报告多个对象的计算机实现方法 Download PDFInfo
- Publication number
- CN105574070A CN105574070A CN201510732523.XA CN201510732523A CN105574070A CN 105574070 A CN105574070 A CN 105574070A CN 201510732523 A CN201510732523 A CN 201510732523A CN 105574070 A CN105574070 A CN 105574070A
- Authority
- CN
- China
- Prior art keywords
- query
- index
- report
- inquiry
- query language
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24575—Query processing with adaptation to user needs using context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及用于在内容管理系统及在其中报告多个对象的计算机实现方法。报告类型定义可以定义涉及了哪些对象以及它们如何相关。报告执行引擎可以生成多对象查询语言语句,以将报告类型定义翻译成查询语言。查询语言执行引擎可以将查询语言语句分成独立的单个片段。成本优化引擎可以确定连接对象是否有成本效益。索引访问执行引擎可以提取对象的唯一ID并且连接唯一ID以生成索引。可以根据索引访问基于Lucene的搜索引擎,并且对响应进行后处理,以生成多对象报告。
Description
技术领域
本技术总体涉及内容管理,并且更具体地涉及企业内容管理中的对象报告。
背景技术
用户因他们从任何地方、在任何时间、从任何设备进行的无处不在的和受管理的访问而越来越依赖于内容管理系统。然而,一些现有技术的内容管理系统不具有自己的报告工具,其用户需要使用第三方报告工具,这需要用户建立完全独立的数据存储、从内容管理系统取得数据、并且将数据移动并转换到第三方报告工具。虽然一些现有技术的内容管理系统具有自己的报告工具,但是其对文档或工作流是严格的,并且通常每个文档一行数据,因此非常不灵活。图1示出了由这种现有技术的内容管理系统报告工具提供的示例性报告页面。
因此,理想的是能够在内容管理系统中实现数据相关,使得用户可以使用复杂对象以灵活的格式定义或报告实时数据。
发明内容
本公开的主题涉及在内容管理系统中报告多个对象的方法,该方法包括:在存储装置中存储多个对象;接收定义了第一对象和第二对象以及第一和第二对象之间的关系的报告类型定义;为报告类型定义生成多对象查询语言语句;将多对象查询语言语句拆分成第一查询和第二查询,其中,第一查询对应于第一对象,第二查询对应于第二对象;为第一查询和第二查询生成索引访问查询定义;从基于Lucene的搜索引擎提取对应于索引访问查询定义中的第一查询的第一对象的ID和对应于索引访问查询定义中的第二查询的第二对象的ID;连接所提取的第一对象的ID和所提取的第二对象的ID。
附图说明
图1示出了由现有技术的内容管理系统中的报告工具提供的示例性报告页面。
图2示出了其中可以实现本发明的企业内容管理架构的示例性高级框图。
图3示出了计算装置的示例性框图。
图4示出了用户计算装置的示例性高级框图。
图5示出了根据本发明一个实施例的图2中示出的企业内容管理架构中的报告执行引擎的示例性高级框图。
图6示出了根据本发明一个实施例的图2中示出的企业内容管理架构中的查询语言执行引擎的示例性高级框图。
图7示出了根据本发明一个实施例的图2中示出的企业内容管理架构中的成本优化引擎的示例性高级框图。
图8示出了根据本发明一个实施例的图2中示出的企业内容管理架构中的索引访问提取引擎的示例性高级框图。
图9A和9B示出了根据本发明一个实施例的用于在图2中示出的企业内容管理架构中报告多个对象的方法的示例性流程图。
图10示出了根据本发明一个实施例的用于启动多对象报告的示例性图形用户界面(GUI)。
图11示出了根据本发明一个实施例的用于接收报告的用户定义的示例性GUI。
图12示出了根据本发明一个实施例的用于成本优化的方法的示例性流程图。
图13示出了用于在内容管理系统中显示文档的示例性GUI。
图14示出了连接之后所得到的索引文件的实例。
图15示出了根据本发明一个实施例的用于显示所生成的多对象报告的实例的GUI。
具体实施方式
以下给出的详细说明书旨在作为本技术的各种配置的说明,而不旨在仅表示其中可以实践本技术的配置。附图被纳入并构成详细说明书的一部分。为了提供对本技术的透彻理解,详细说明书包括了具体细节。然而,本技术不限于这里给出的具体细节,并且可以在没有这些具体细节的情况下实践。在一些情况下,为了避免模糊本技术的概念,以框图形式示出了公知的结构和部件。
本技术致力于提供一种用于在内容管理系统中报告多个对象的技术。对象可以是动态可变项,例如,表格。对象可以灵活的格式存储,并且在搜索引擎中索引。搜索引擎例如可以是基于Lucene的搜索引擎,其基于含有文本字段的文档的想法。该灵活性允许Lucene的API不依赖于文件格式。来自PDF、HTML、MicrosoftWord、OpenDocument文档以及许多其他的文本都可被索引,只要其文本信息可被提取。可以由内容管理系统的服务供应商或用户根据所管理的内容或者其一部分(例如,产品、文档、或国家)来定义对象。
在内容管理系统中,文档可以具有多个属性,例如,产品、国家、文件名、文件大小、文件类型、以及是否被批准。这些属性中的一个或多个可以进一步与多个属性相关,例如,姓名、昵称、缩写、以及产品类型。当用户在内容管理系统中创建文档时,可以要求他/她提供这些属性。利用这些属性,用户可以聚合数据,以找到具有特定属性(例如,产品类型)的所有文档,并且可被提供有例如计数(例如通过产品类型或通过国家)、取平均、以及求和的聚合功能。用户还可以将数据分组,例如,请求首先通过产品类型、其次通过国家将数据分组的报告。因此,即使仅仅具有线索(pointer)的对象,也可以是非常复杂的对象。内容管理系统需要能够例如通过提供仅示出其产品类型是的胆固醇药物的文档的报告,对其进行报告和过滤。
本发明的内容管理系统可以保持对象的结构化并且分离、隔离数据,然后响应于查询根据要求进行连接,而不是保持其中的一切都是非规范化的单个大对象且每当有任何变化时用户都需要重新索引搜索标准。将数据分成小片允许内容管理系统更加高效和灵活,并且更易于维护。
搜索引擎可以取得存储装置中存储的对象,并且连接引擎可以连接从搜索引擎返回的对象并且将它们变成复合对象。该信息然后可以以具有驱动对象或主要对象并且每个对象与该驱动对象的关联的格式显示。当存在多个对象时,一个连接与另一个连接之间的关系可能很不同。例如,内容管理系统中的文档可以具有15个产品,但只有一个是国家,是不同的对象。因此,这些单个对象都明显不同,但是相关联。用户可以在这些对象的每个中进行排序,而实际上不会影响驱动对象的排序。
在一个实施例中,可以使用搜索引擎(例如,基于Lucene的搜索引擎)作为对象的快速数据存储。当报告的用户定义要求连接时,可以使用基于数据库的索引访问方法和标准哈希连接来写基于Lucene的搜索引擎的连接,以取得单独的Lucene索引并且将它们连接在一起以创建连接对象。该索引访问方法可以例如是索引顺序访问方法(“ISAM”)或虚拟存储访问方法(“VSAM”)。
图2示出了其中可以实现本发明的企业内容管理架构200的示例性高级框图。企业可以是商业或组织。如图所示,架构200可以包括内容管理系统210、经由网络250彼此耦合的多个用户计算装置220a、220b、…220n。内容管理系统210可以包括内容存储装置211和内容管理服务器212。网络250可以包括一种或多种通信网络,例如,局域网(“LAN”)、广域网(“WAN”)、内部网络、互联网络(例如,Internet)、电信网络、有线或无线的对等(peer-to-peer)网络(例如,自组对等网络)。
用户计算装置220a-220n可以是用于用户经由网络250访问内容管理系统210的任何机器或系统,并且可以是任何市售的计算装置,包括笔记本电脑、台式计算机、移动电话、智能电话、平板电脑、上网本、以及个人数字助理(PDA)。客户端应用程序221可以从例如用户计算装置220a运行,并且经由网络250访问内容管理系统210中的内容。图4更详细地示出了用户计算装置220a-220n。
内容存储装置211可以存储用户计算装置220a-220n中的客户端应用程序(例如,221)可以访问的内容,并且可以是任意市售存储装置。在一个实施例中,内容存储装置211可以存储电子试验主文件(“eTMF”),该文件是用于记录药物将要进行的过程的主文件,并且使得赞助商和合同研究组织(“CRO”)可以在试验的设置、执行、和存档的每个点都可以实时访问临床文献。在该文档上,可以有称为“site”的对象,例如,测试药物的位置。该文档还可以与“study”(学习)相关,并且该study可以具有多个不同属性,例如,学习的类型。
在一个实施例中,内容存储装置211可以存储用户的安全和专有内容,诸如产品配方、标准操作程序(“SOP”)、变化控制、以及各种FDA授权的电子文件,以帮助制药、生物技术、和医疗产品公司提高质量控制、安全性、和合规性。用户可以创建、审核、批准、发布和制定有效的SOP以及具有核心版本控制、文件状态、以及完整的审计跟踪的相关质量文档类型,加快审批时间,并确保严格监管。典型的对象例如可以包括工作流、分配、和设施。
在一个实施例中,内容存储装置211可以存储医疗通信,包括标准响应文档和医疗信件以及常见问题(FAQ)。典型的对象例如可以包括文档、工作流、分配、产品、和国家。
在一个实施例中,内容存储装置211可以存储生命科学产业的宣传材料。典型的对象可以包括例如文档、工作流、分配、产品、和国家。
应当理解,内容存储装置211可以存储其他产业的内容。
内容管理服务器212通常是可以通过远程或本地网络(诸如网络250)访问的远程计算机系统。内容管理服务器212可以是任意市售计算装置。客户端应用程序(例如,221)处理可以在一个或多个用户计算装置220a-220n上激活,并且对应的服务器处理可以在内容管理服务器212上激活。客户端应用程序处理和对应的服务器处理可以通过网络250彼此通信,因此提供了分布式功能,并且允许多个客户端应用程序利用内容管理系统210的信息收集能力。在一个实施例中,内容管理服务器212可以包括报告执行引擎213、查询语言执行引擎214、成本优化引擎215、以及索引访问执行引擎216。
报告执行引擎213可以接收报告的用户定义,然后解析报告定义。报告执行引擎213可以确定所请求的报告是否含有多个对象,并且在含有多个报告时生成多对象查询语言语句。当所请求的报告只含有一个对象时,报告执行引擎213可以生成单对象查询语言语句。报告执行引擎213然后可以将查询语言语句发送到查询语言执行引擎214用于查询执行。报告执行引擎213可以接收从查询语言执行引擎214返回的查询执行结果,并且对结果进行后处理,以呈现用户友好的报告。
查询语言执行引擎214可以接收来自报告执行引擎213的多对象查询语言语句,对所接收的多对象查询语言语句解析并且拆分成用于所涉及的每个对象的单个查询。由于基于Lucene的搜索引擎本身是索引和搜索库并且不具有爬取(crawl)和HTML解析功能,因此在一个实施例中,解析可以基于又一个语言识别工具(AnotherToolforLanguageRecognition,简称为“ANTLR”),并且在JAVA对象中执行。查询语言执行引擎214可以确定多对象查询语言语句是否有效,并且如果有效,则创建执行计划。基于定义了对象之间的关系的单个语句,查询语言执行引擎214可以生成查询定义。在一个实施例中,查询定义可以是VSAM查询定义。查询语言执行引擎214然后可以从索引访问执行引擎216接收由此产生的索引,执行查询,并且将结果返回到报告执行引擎213用于后处理。查询语言执行引擎214还可以从报告执行引擎213接收单对象查询语言语句,执行查询,并且将结果返回到报告执行引擎213用于后处理。在一个实施例中,在Solr搜索平台上执行查询执行。
成本优化引擎215可以利用基于成本的优化来优化查询。成本优化引擎215可以从查询语言执行引擎214接收查询定义,并且计算查询中涉及的每个对象的成本。成本优化引擎215可以确定是否需要额外过滤。如果需要额外过滤,则成本优化引擎215可以执行基本对象,并且针对子对象优化查询。
在索引访问执行引擎216,可以从Lucene/Solr提取查询定义中的每个对象的唯一ID,并且可以为每个对象使数据存留到存储表中的MySQL。可以基于外键关系在对象之间执行连接,以滤掉预期的结果集。连接结果可以输出到文件系统中的固定二进制表示,该固定二进制表示是索引。该索引可以返回到查询语言执行引擎214,在查询语言执行引擎214可以执行基于大小的索引访问。在一个实施例中,可以使用哈希函数进行数据库中的连接,并且与基于Lucene的搜索引擎组合,以保持灵活的数据模式。
虽然在一个服务器中示出了报告执行引擎213、查询语言执行引擎214、成本优化引擎215、以及索引访问执行引擎216,但是应当理解,这些引擎可以在多个服务器中实现。
在一个实施例中,内容管理系统210可以是多租户系统,其中,一个或多个客户可以共享硬件和软件的各种元件。例如,服务器可以同时处理来自多个客户的请求,并且内容存储装置211可以存储多个客户的内容。在多租户系统中,用户通常与具体客户相关。在一个实例中,用户可以是内容管理系统210的多家制药公司(租户或客户)其中之一的雇员。
在一个实施例中,内容管理系统210可以在云计算平台上运行。通过使用虚拟机图像,或者通过购买对云数据库供应商维护的服务的访问,用户可以独立访问云上的内容。
在一个实施例中,可以提供内容管理系统210作为软件即服务(SoftwareasaService,简称为“SaaS”),以允许用户用瘦客户机(thinclient)访问内容管理系统210。
图3示出了计算装置300的示例性框图,其可以用作图2中的用户计算装置220a-220n、报告执行引擎213、查询语言执行引擎214、成本优化引擎215、和/或索引访问执行引擎216。计算装置300仅仅是合适的计算环境的一个实例,不旨在对用户或功能的范围建议任何限制。计算装置300可以包括处理单元301、系统存储器302、输入装置303、输出装置304、网络接口305、以及将这些部件彼此耦合的系统总线306。
处理单元301可以配置为执行存储在计算机可读介质(例如,系统存储器302)中的计算机指令。处理单元301可以是中央处理单元(CPU)。
系统存储器302通常包括各种计算机可读媒体,其可以是可由处理单元301访问的任意可用媒体。例如,系统存储器302可以包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)的易失和/或非易失存储器形式的计算机存储媒体。例如但不限于,系统存储器302可以存储指令和数据,例如,操作系统、系统模块、各种应用程序、以及程序数据。
用户可以通过输入装置303向计算装置300输入命令和信息。输入装置303例如可以是键盘、触摸屏输入装置、触摸板、鼠标、麦克风、和/或笔。
计算装置300可以经由输出装置304提供其输出,输出装置304例如可以是监视器或其他类型的显示装置、扬声器、或打印机。
通过网络接口305,计算装置300可以使用到一个或多个其它计算装置的逻辑连接在网络化或分布式环境中运行,其它计算装置可以是个人计算机、服务器、路由器、网络PC、对等设备、智能电话、或任何其他媒体耗费或传输装置,并且可以包括上述元件中的任一个或全部。逻辑连接可以包括网络(例如,网络250)和/或总线。网络接口305可以配置为允许计算装置300在网络(例如,网络250)中传输和接收数据。网络接口305可以包括一个或多个网络接口卡(NIC)。
图4示出了其中可以实现本发明的用户计算装置(例如,220a)的示例性高级框图。用户计算装置220可以通过上述计算装置300实现,并且可以具有经由系统总线2206彼此耦合的处理单元2201、系统存储器2202、输入装置2203、输出装置2204、以及网络接口2205。系统存储器2202可以存储客户端应用程序221。
图5示出了根据本发明一个实施例的报告执行引擎213的示例性高级框图。报告执行引擎213可以通过计算装置300实现,并且可以具有经由系统总线2136彼此耦合的处理单元2131、系统存储器2132、输入装置2133、输出装置2134、以及网络接口2135。系统存储器2132可以存储:报告类型定义解析器2137,用于解析报告类型定义;单对象查询语言语句生成器2138S,用于生成单对象查询语言语句;多对象查询语言语句生成器2138M,用于生成多对象查询语言语句;以及后处理单元2139,用于处理来自查询语言执行引擎214的响应,以生成待显示给用户的报告。
图6示出了根据本发明一个实施例的查询语言执行引擎214的示例性高级框图。查询语言执行引擎214可以通过计算装置300实现,并且可以具有经由系统总线2146彼此耦合的处理单元2141、系统存储器2142、输入装置2143、输出装置2144、以及网络接口2145。系统存储器2142可以存储:基于ANTLR的解析器2147,用于解析来自报告执行引擎213的多对象查询语言语句;索引访问查询定义生成器2148,用于生成索引访问查询定义;以及搜索引擎2149,用于接收来自报告执行引擎213的单对象查询语言语句和/或用于多对象查询语言语句的由索引访问执行引擎216生成的索引,并且执行索引访问。
图7示出了根据本发明一个实施例的成本优化引擎215的示例性高级框图。成本优化引擎215可以通过计算装置300实现,并且可以具有经由系统总线2156彼此耦合的处理单元2151、系统存储器2152、输入装置2153、输出装置2154、以及网络接口2155。系统存储器2152可以存储:计算器2157,用于计算来自查询语言执行引擎214的索引访问查询定义中涉及的每个对象的成本;基本对象执行单元2158,用于执行基本对象;以及查询重写器2159,用于重写查询,以优化查询子对象。
图8示出了根据本发明一个实施例的索引访问执行引擎216的示例性高级框图。索引访问执行引擎216可以通过计算装置300实现,并且可以具有经由系统总线2166彼此耦合的处理单元2161、系统存储器2162、输入装置2163、输出装置2164、以及网络接口2165。系统存储器2162可以存储:提取器2167,用于从Solr搜索引擎2149提取索引访问查询定义中的每个对象的唯一ID;数据存留单元2168,用于将数据存留到MySQL;以及连接引擎2169,用于执行对象之间的连接。
图9A-图9B示出了根据本发明一个实施例的用于在企业内容管理系统200(如图2所示)中报告多个对象的方法的示例性流程图。执行请求的用户可以输入报告类型定义,其定义了涉及哪些对象以及这些对象如何关联。报告执行引擎213可以生成查询语言语句,以将报告类型定义翻译成查询语言。查询语言执行引擎214可以将查询语言语句分解成独立的单个片段,成本优化引擎215可以确定连接对象是否有成本效益,并且索引访问执行引擎216可以通过基于报告类型定义创建链接,连接物理上不相连的对象。然后可以执行索引访问和报告。
处理可以在901开始。
在902,用户可以登录到客户端应用程序221,并且被认证访问内容管理系统210。
在903,如图10所示,可以显示GUI1000。GUI1000可以具有菜单条1001,用于接收用于与内容管理系统200交互的用户命令。在一个实施例中,菜单条1001可以包括多个按钮或可点击区域,例如,1002用于HOME(主页)、1003用于LIBRARY(库)、1004用于REPORTS(报告)、1005用于DASHBOARDS(仪表板)。如果用户想要运行报告,他/她可以点击REPORTS按钮1004。
作为响应,在904,可以显示如图11所示的GUI1100,以接收报告的用户定义。在一个实施例中,GUI1100可以具有用于接收用户输入的各种窗口,包括Search(搜索)窗口1101、ReportType(报告类型)窗口1102、Filters(过滤器)窗口1103、以及Group(组)窗口1104。Search窗口1101可以接收来自用户的搜索条件。ReportType窗口1102可以接收用于报告类型的用户输入,例如,“productwithdocument”(具有文档的产品)或者“documentwithproductandcountry”(具有产品和国家的文档)。Filters窗口1103可以允许用户选择报告定义中的一个或多个过滤器,例如,使用产品名“VPXR”作为过滤器,以将待显示的对象缩小到只有涉及VPXR的那些。Group窗口1104可以允许用户选择如何例如通过产品(Product)或者通过文档(Document)将报告中的行分组。可以添加文档的更多属性,以通过例如通用名和缩写将行分组。当用户已经选择了报告类型和过滤器,并且点击了“Run”(运行)按钮1105时,可以开始报告处理。
在911,可以在报告执行引擎213,具体地,在报告类型定义解析器2137,解析在GUI1100接收的报告类型定义。对于在图11中示出的GUI1100接收的报告类型定义“productwithdocument”(具有文档的产品),数据库中的解析的报告类型定义可以是:
primaryobjectisproduct
public_keyisproduct_with_document__c
reporttypedefinitionis,
<downRelationships>
<downRelationshipkey="Product.document"
keyRef="reportTypeRef1403542951011"joinType="inner"/>
</downRelationships>
</reportType>
在912,可以确定所请求的报告是否含有多个对象。
当所请求的报告仅含有一个对象时,例如,产品或国家,在913,报告执行引擎,更具体地,单对象查询语言语句生成器2138S可以生成表示所请求的报告的单对象查询语言语句。处理然后进行到923,以在查询语言执行引擎214执行查询。
如果所请求的报告含有多个对象,则在914,可以在报告执行引擎213,更具体地,多对象查询语言语句生成器2138M生成多对象查询语言语句。
在一个实施例中,product__v和country__v分别是对象类型product__v和country__v的ObjectReference文档字段。为了选择由这些文档字段参考的对象的对象记录数据,在914,可以生成下面的多对象查询语言语句:
在多对象查询语言语句的实例(1)中,通过在字段中定义的关系路径符号访问对象字段。Document_product__vr和document_country__vr关系分别是文档和产品、文档和国家之间的JOIN(连接)关系。
在914生成的多对象查询语言语句的另一实例可以是:
在914生成的多对象查询语言语句的进一步的实例可以是:
多对象查询语言语句的实例(3)对应于在图11中的示出的GUI1100上接收的“productwithdocument”查询。该查询返回在文档中使用的产品,并且主要对象是产品。
在913和914生成的查询语言语句可以发送到查询语言执行引擎214。对于单对象查询语言语句,在923,查询语言执行引擎214可以执行查询,例如,Solr查询,并且向报告执行引擎213返回响应。处理可以进行到916用于后处理。
对于在914生成的多对象查询语言语句,在921,在查询语言执行引擎214,该语句可以被解析并拆分成用于所涉及的每个对象的单个查询。在一个实施例中,单个查询可以由基于ANTLR的解析生成,并且在JAVA对象中执行。基于ANTLR的解析器2147可以解析多对象查询语言语句,确定其是否有效,并且如果有效,则创建查询计划。例如,在上面示出的多对象查询语言语句的实例(3)中,可以有两个单独查询:从产品选择,以及从文档选择。查询计划的一个实例可以是:
MainQuery:PRIMARY|358fac27‐2248‐4bb3‐9df0‐635a4b6b1d1d|SELECTidFROMproduct__vLIMIT1000OFFSET0
SubQuery:CHILD|488e0503‐f579‐45d3‐8009‐5adc5a1a345e|SELECTproduct__v,idFROMdocumentsLIMIT250OFFSET0
Join:358fac27‐2248‐4bb3‐9df0‐635a4b6b1d1d|488e0503‐f579‐45d3‐8009‐5adc5a1a345e|id|product__v|leftOuterJoin
SubQuery:CHILD|21e79b35‐542b‐420e‐a012‐d0b042d3334a|SELECTproduct__v,idFROMdocumentsLIMIT250OFFSET0
Join:358fac27‐2248‐4bb3‐9df0‐635a4b6b1d1d|21e79b35‐542b‐420e‐a012‐d0b042d3334a|id|product__v|innerJoin
在922,在查询语言执行引擎214,更具体地,在索引访问查询定义生成器2148,可以基于定义对象之间的关系的单个语句,生成索引访问查询定义。在一个实施例中,索引访问查询定义可以是VSAM查询定义。对于上面示出的多对象查询语言语句的实例(2),索引访问查询定义可以是:有三个不同对象(即,文档、产品、和国家),有一个子(child)对象,并且需要从产品的主(primary)对象中选择文档,以及国家的子(child)对象。
在931,成本优化引擎215可以从查询语言执行引擎214接收索引访问查询定义,并且可以计算索引访问查询定义中涉及的每个对象的成本。多对象查询语言语句的实例(3)的成本计算的实例如下:
在932,可以在成本优化引擎215确定是否需要额外过滤。如果不需要,则如同多对象查询语言语句的实例(1),处理可以进行到941以执行索引访问执行,例如,VSAM执行。
如果需要额外过滤,则成本优化引擎215可以在933执行基本对象,并且对子对象优化查询。例如,额外过滤对于多对象查询语言语句的实例(2)是必要的,这是因为其包括WHERE字句“WHEREname__v=‘Test’”,这要求基本对象过滤子对象。类似地,对于多对象查询语言语句的实例(3),WHERE字句要求用子对象“document”过滤基本对象“product”,以选择在文档中使用的产品。
优化可以依赖于数据。在一个实施例中,可以在934确定数据的数量是否超过了阈值。如果没有超过,则成本优化引擎215可以在935将查询重写为更有效,这将在下面参照图12进行描述,并且处理可以进行到941执行索引访问执行,例如,VSAM执行。例如,由于多对象查询语言语句的实例(2)最有可能是高度过滤选项,因此可以在935重写查询。另一方面,如果有大量数据片,例如,当每个数据片都需要与所有其他数据片连接并且重写查询不会使处理更有效时,处理可以跳过重写,直接进行到941执行连接。成本优化引擎215可以考虑多个不同的成本影响,包括对象大小以及结果的预计大小。
图12示出了根据本发明一个实施例的用于成本优化的方法的示例性流程图。如图所示,在1201,可以确定由每个单个查询返回的行的数量。在一个实施例中,可以在外连接之前检查内连接。如果任何内连接单个查询返回零行,则可以返回空结果集。在1202,例如可以按照每个的行的数量,从最低到最高,对单个查询重新排序。在1203,通过添加从基本或驱动程序查询得出的额外WHERE字句来优化单个查询。
在一个实施例中,可以将WHERE字句添加到单个查询,以减少用于成本优化的待处理的行。当基本或驱动程序查询基于产品时,后续的单个查询也需要有product(产品),因此WHERE字句可以是:
“WHEREproduct__v!=null”
在一个实施例中,原始查询是“productwithdocument”并且其具有过滤器,例如,“returnonlyproduct=CC”。在优化期间,可以首先执行产品查询。然后可以将下面的WHERE字句添加到文档查询以限制来自文档查询的中间结果,使得在后续步骤中有较少的数据要处理。
“WHEREproduct__v=‘CC’”
现在返回到图9。在941,可以在索引访问执行引擎216开始索引访问执行,并且可以从Lucene/Solr提取索引访问查询定义中的每个对象的唯一ID。在一个实施例中,文档的唯一ID可以是“ID”,并且产品的唯一ID可以是“documentID,ID”。在一个实施例中,对于多对象查询语言语句的实例(2),可以选择ID、与该ID相关的产品、以及与ID相关的国家。产品和国家可以来自于文档。然后可以从产品和国家选择其ID。
在942,每个ID都可以保持在单个存储表中的MySQL中。当输出集的大小超过阈值时,其可以存储在盘上,而不是存储表中。上述保持的实例如下:
ExecutePrimaryTableSQL:CREATETEMPORARYTABLEd358fac2722484bb39df0635a4b6b1d1d(row_numBIGINTUNSIGNEDNOTNULLAUTO_INCREMENT,idCHAR(20),PRIMARYKEY(row_num))
INSERTINTOPRIMARY:INSERTINTOd358fac2722484bb39df0635a4b6b1d1d(id)VALUES(?)
ExecuteJOINTableSQL:CREATETEMPORARYTABLEc488e0503f57945d380095adc5a1a345e(row_numBIGINTUNSIGNEDNOTNULLAUTO_INCREMENT,fkCHAR(20),idCHAR(20),PRIMARYKEY(row_num))
INSERTINTOJOINTABLE:INSERTINTOc488e0503f57945d380095adc5a1a345e(fk,id)VALUES(?,?)
ExecuteJOINTableSQL:CREATETEMPORARYTABLEc21e79b35542b420ea012d0b042d3334a(row_numBIGINTUNSIGNEDNOTNULLAUTO_INCREMENT,fkCHAR(20),idCHAR(20),PRIMARYKEY(row_num))
INSERTINTOJOINTABLE:INSERTINTOc21e79b35542b420ea012d0b042d3334a(fk,id)VALUES(?,?)
ExecutePrimaryTableSQL:CREATETEMPORARYTABLEj8fb43757c91f41038b4bac735cabc4f4(row_numBIGINTUNSIGNEDNOTNULLAUTO_INCREMENT,idCHAR(20),PRIMARYKEY(row_num))
PERFORMJOIN:INSERTINTOj8fb43757c91f41038b4bac735cabc4f4(id)SELECTd358fac2722484bb39df0635a4b6b1d1d.idFROMd358fac2722484bb39df0635a4b6b1d1d,c488e0503f57945d380095adc5a1a345eWHEREc488e0503f57945d380095adc5a1a345e.fk=d358fac2722484bb39df0635a4b6b1d1d.idORDERBYd358fac2722484bb39df0635a4b6b1d1d.row_numCREATECHILDINDEXTABLE:SELECTDISTINCTLPAD(IFNULL(j8fb43757c91f41038b4bac735cabc4f4.id,0),20,”)INTOOUTFILE'/data2/reports/instance_2/358fac27‐2248‐4bb3‐9df0‐635a4b6b1d1d/358fac27‐2248‐4bb3‐9df0‐635a4b6b1d1d.idx'FIELDSTERMINATEDBY','LINESTERMINATEDBY'\n'FROMj8fb43757c91f41038b4bac735cabc4f4ORDERBYrow_num
CREATEFILEINDEX:SELECTj8fb43757c91f41038b4bac735cabc4f4.id,LPAD(IFNULL(min(t.min),0),9,'0'),LPAD(IFNULL(max(t.max),0),9,'0')INTOOUTFILE/data2/reports/instance_2/358fac27‐2248‐4bb3‐9df0‐635a4b6b1d1d/358fac27‐2248‐4bb3‐9df0‐635a4b6b1d1d.idx'FIELDSTERMINATEDBY','LINESTERMINATEDBY'\n'FROMj8fb43757c91f41038b4bac735cabc4f4LEFTOUTERJOIN(SELECTfkAScol,min(row_num)ASmin,max(row_num)ASmaxFROMc21e79b35542b420ea012d0b042d3334aGROUPBYcol)AStONj8fb43757c91f41038b4bac735cabc4f4.id=t.colGROUPBY1ORDERBYj8fb43757c91f41038b4bac735cabc4f4.row_num
在该实例中,使用INSERT将数据从Solr拉入MySQL表,并且末尾的SELECT...INTOOUTFILE行是生成索引和数据文件的地方。
在943,可以基于被用作链接的外键关系在所有对象之间执行连接,以滤掉期望的结果集。连接处理用于找到满足报告类型定义的要求的对象的组合,其在多对象查询语言语句的实例(3)中是“productwithdocument”。如果文档不适用任何产品,或者如果产品不具有任何与其相关的文档,则它们将不会包括在连接结果中。
在一个实施例中,可以使用哈希函数来执行数据库中的连接,其可以包括内连接和外连接。
在944,连接结果可以输出到文件系统中的固定二进制表示,其基本上是一个索引。图13中示出了多对象查询语言语句的实例(2)连接之后得到的索引文件的实例。如图所示,数据可以分成三个索引文件:主要(primary)的第一文件,用于产品的第二文件,以及用于国家的第三文件。第一文件可以具有文档ID、产品开始的子行、产品结束的子行、国家开始的子行、以及国家结束的子行。第一行可以指示文档ID是1,以0开始,以3结束。在产品的第二文件中,行ID0-5,前三行0、1、和2与第一文件中的数据块(1,0,3)相关,并且下两行可以表示第一文件中的(2,4,5)。读取算法是:跳转到文档的行,驱动程序读取产品开始的子行,然后基于字节计算进行读取。可以以类似的方式读取国家的第三文件。实际文件可能更小,这是因为实际文件不会得到所有数据集,而是仅得到其ID。
在一个实施例中,内容管理系统210中的产品可以包括CC、VP、VPXR、和WD。图14示出了示例性GUI1400,其显示内容管理系统中的文档。如图所示,在内容管理系统中有十个文档。GUI1400还可以显示哪些文档使用哪些产品。例如,文档Test4、Test2、和Test1中的每个都使用产品CC,文档Number10使用产品CC和VPXR,并且文档Test5使用产品VP。可以使用内连接逻辑来显示有什么是相同的,例如,用户关心的事实是Test1、Test2、Test4和Number10使用产品CC。在多对象查询语言语句的实例(3)的索引访问执行期间,以下示出了连接之后得到的索引文件及其对应的数据文件的实例。由于在任何文档中都没有使用产品WD,因此其在查询结果中不被返回,并且不包括在得到的索引文件中。
得到的索引文件
对应的数据文件
得到的数据文件中的第一列是产品密钥,其是来自产品表的ID。下两列是数据文件中的开始和结束行,其中这些密钥是有效的。得到的索引文件中的第一行指示对应的数据文件中的行1至行4是使用产品CC的文档。在对应的数据文件中,这些文档的ID是1、2、4、10。得到的文件文件中的第二行指示对应的数据文件中的行5至行5是具有VP作为产品密钥的文档。在对应的数据文件中,文档的ID是5。得到的索引文件中的第三行指示对应的数据文件中的行6至行6是使用产品VPXR的文档。在对应的数据文件中,文档的ID是10。
现在返回到图9B。在945,得到的索引可以被返回到查询语言执行引擎214,其中可以执行基于大小的索引访问。结果然后可以被返回到报告执行引擎213。在一个实施例中,来自查询语言执行引擎214的JSON结果可以是:
在一个实施例中,查询语言执行引擎214的XML结果可以是:
有了这些ID,查询语言执行引擎214可以确定真正需要的数据片在对象外部ID上,并且基于这些ID仅拉出其需要的数据片。通过用索引访问执行引擎216纯粹根据ID而不是数据进行连接,并且以适当的顺序放置数据以支持“orderby”或者该性质的指令,然后用查询语言执行引擎214提供数据,内容管理服务器212可以显著加快查询处理,并实时提供最终结果集。
在916,来自查询语言执行引擎214的结果可以在报告执行引擎213中的后处理单元2139进行后处理,并且被放入表示层,使得其可以以在更加用户友好地报告中被格式化并呈现。
图15示出了GUI1500,其显示多对象查询语言语句的实例(3)在916生成的报告实例。如在GUI1500上所指示的,返回了六行,其包括产品CC的四个文档(即,Test1、Test2、Test4、和Number10);产品VP的一个文档(即,Test5),以及产品VPXR的一个文档(即,Number10)。由于在任何文档中都没有使用产品WD,因此其在查询结果中没有被返回。内连接有效地将其从结果集去除。如果将过滤器1103设置到CC,则将只显示具有三个文档的CC。可以通过对其运行标准数据库查询将结果排序。报告执行引擎213可以获得结果,将结果放入其自身数据库,然后对结果采取动作。
上述特征和应用可以作为软件处理实现,该软件处理可以被指定为计算机可读存储介质(也称为计算机可读介质)上记录的指令集。当通过一个或多个处理单元(例如,一个或多个处理器、处理器核、或其他处理单元)执行这些指令时,这些指令是的处理单元执行指令中指示的动作。计算机可读媒体的实例包括但不限于CD-ROM、闪存驱动、RAM芯片、硬驱动、EPROM等。计算机可读媒体不包括载波和无线或通过有线连接穿过的电信号。
上述给你可以在数字电子电路、计算机软件、固件、或硬件中实现。该技术可以使用一个或多个计算机程序产品实现。可以包括或封装可编程处理器核计算机作为移动装置。可以通过一个或多个可编程处理器以及通过一个或多个可编程逻辑电路来执行处理和逻辑流。通用和专用计算装置和存储装置可以通过通信网络互联。
在该说明书中,术语“软件”只在包括存在于只读存储器中的固件或者存储在磁存储器中的应用程序,其可以被读取到存储器中用于处理器处理。另外,在一些实施例中,可以实现多个软件技术作为较大程序的子部分,同时保留区别软件技术。在一些实施例中,还可以实现多个软件技术作为单独的程序。最后,共同实现这里描述的软件技术的单独程序的任意组合在本技术的范围内。在一些实施例中,当安装软件程序以在一个或多个电子系统上运行时,定义一个或多个实施并执行软件程序的操作的具体机器实施例。计算机程序或计算机代码的实例包括:例如由编译器生成的机器代码、以及包括由计算机、电子部件、或者使用解释器的微处理器执行的高级代码的文件。
计算机程序(也称为程序、软件、软件应用、脚本、或代码)可以以任何形式的编程语言编写,包括编译或解释性语言、陈述或程序性语言,并且可以以任意形式部署,包括作为单独的程序或模块、组件、子程序、对象、或适于在计算环境中使用的其它单元。计算机程序可以但不一定对应于文件系统中的文件。程序可以存储在保持其他程序或数据的文件的一部分中(例如,标记语言文档中存储的一个或多个脚本)、专门用于询问的程序的单个文件中、或者多个协同文件中(例如,存储一个或多个模块、子程序、或者代码的一部分的文件)。计算机程序可以被部署为在一个计算机或者位于一个站点或跨多个站点分布且通过通信网络互联的多个计算机上执行。
如同在说明书以及本申请的任意权利要求中所使用的,术语“计算机”、“服务器”、“处理器”、和“存储器”均指电子或其他技术装置。这些术语不包括人或人群。为了便于说明,术语“显示(display/displaying)”表示在电子装置上显示。如同在说明书以及本申请的任意权利要求中所使用的,术语“计算机可读介质”和“计算机可读媒体”完全限制于以计算机可读形式存储信息的有形实物。这些术语不包括任何无线信号、有线下载信号、以及任何其他短暂信号。
应当理解,所公开的处理中的步骤的任何具体顺序或层次都是一种举例说明的方法。基于设计偏好,应当理解,可以重新安排处理中的步骤的具体顺序或层次,或者执行所示出的所有步骤。一些步骤可以同时执行。例如,在一些情况下,多任务和并行处理可能是有利的。此外,上述各种系统部件的分隔不应当被理解为要求这种分隔,应当理解,所描述的程序部件和系统一般地可以在单个软件产品中集成在一起或者封装到多个软件产品中。
对这些方面的各种修改将是显而易见的,并且文中定义的一般原则可以应用于其他方面。因此,权利要求不限于文中示出的方面,而是要符合语言表示的权利要求的全部范围,除非另有说明,其中对单数形式的元件的引用并不意味着“有且只有一个”,而是“一个或多个”。除非另有特别说明,术语“一些”指一个或多个。
Claims (20)
1.一种用于在内容管理系统中报告多个对象的计算机实现方法,所述方法包括:
在存储装置中存储多个对象;
接收定义了第一对象和第二对象以及所述第一对象和所述第二对象之间的关系的报告类型定义;
为所述报告类型定义生成多对象查询语言语句;
将所述多对象查询语言语句拆分成第一查询和第二查询,其中,所述第一查询对应于所述第一对象,所述第二查询对应于所述第二对象;
为所述第一查询和所述第二查询生成索引访问查询定义;
从基于Lucene的搜索引擎提取对应于所述索引访问查询定义中的所述第一查询的所述第一对象的ID和对应于所述索引访问查询定义中的所述第二查询的所述第二对象的ID;以及
连接所提取的所述第一对象的ID和所提取的所述第二对象的ID。
2.根据权利要求1所述的方法,进一步包括:为连接结果生成索引。
3.根据权利要求2所述的方法,其中,所述索引是固定二进制表示。
4.根据权利要求3所述的方法,进一步包括:生成所述索引的对应数据文件。
5.根据权利要求2所述的方法,进一步包括:根据所述索引,在所述基于Lucene的搜索引擎执行对象的索引访问。
6.根据权利要求5所述的方法,进一步包括:执行Solr查询并返回响应。
7.根据权利要求5所述的方法,其中,所述索引访问是基于大小的。
8.根据权利要求1所述的方法,进一步包括:后处理所述索引访问的响应,以生成用于显示的报告,其中,所述报告包括所述第一对象和所述第二对象。
9.根据权利要求8所述的方法,进一步包括:使能够用所述第一对象对所述报告中的数据进行分组。
10.根据权利要求8所述的方法,进一步包括:使能够聚合所述报告中的数据。
11.根据权利要求1所述的方法,进一步包括:将所提取的所述第一对象的ID和所提取的所述第二对象的ID存留到MySQL。
12.根据权利要求1所述的方法,其中,所述索引访问方法是虚拟存储访问方法。
13.根据权利要求1所述的方法,其中,通过基于ANTLR的解析进行所述拆分。
14.根据权利要求1所述的方法,其中,使用哈希函数实现所述连接。
15.根据权利要求14所述的方法,其中,所述连接包括内连接和外连接。
16.根据权利要求1所述的方法,其中,所述连接基于所述第一对象和所述第二对象之间的外键关系。
17.根据权利要求1所述的方法,进一步包括:计算所述索引访问查询定义中涉及的所述第一对象和所述第二对象的成本。
18.根据权利要求17所述的方法,进一步包括:确定所述索引访问查询定义要求所述第一对象的进一步过滤。
19.根据权利要求17所述的方法,进一步包括:重写所述第一查询,以限制其结果大小。
20.一种内容管理系统,包括:
存储装置,用于存储多个对象;
报告执行引擎,用于接收报告类型定义并且为所述报告类型定义生成多对象查询语言语句,其中,所述报告类型定义定义了第一对象和第二对象以及所述第一对象和所述第二对象之间的关系;
查询语言执行引擎,用于将所述多对象查询语言语句拆分成分别对应于所述第一对象和所述第二对象的第一查询和第二查询,为所述第一查询和所述第二查询生成索引访问查询定义,并且根据索引在基于Lucene的搜索引擎执行对象的索引访问;以及
索引访问执行引擎,用于从所述基于Lucene的搜索引擎提取对应于所述索引访问查询定义中的所述第一查询的所述第一对象的ID和对应于所述索引访问查询定义中的所述第二查询的所述第二对象的ID,并且连接所提取的所述第一对象的ID和所提取的所述第二对象的ID,以生成所述索引。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/530,694 | 2014-11-01 | ||
US14/530,694 US9208200B1 (en) | 2014-11-01 | 2014-11-01 | System and method for reporting multiple objects in enterprise content management |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105574070A true CN105574070A (zh) | 2016-05-11 |
Family
ID=54360083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510732523.XA Pending CN105574070A (zh) | 2014-11-01 | 2015-11-02 | 内容管理系统及在其中报告多个对象的计算机实现方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9208200B1 (zh) |
EP (1) | EP3018595A1 (zh) |
JP (1) | JP5944039B2 (zh) |
CN (1) | CN105574070A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111954996A (zh) * | 2017-12-19 | 2020-11-17 | 维我系统公司 | 用于控制电子通信的系统和方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11249968B2 (en) * | 2016-05-09 | 2022-02-15 | Sap Se | Large object containers with size criteria for storing mid-sized large objects |
US10664463B2 (en) * | 2016-12-30 | 2020-05-26 | Dropbox, Inc. | Event context enrichment |
US11720236B1 (en) * | 2019-01-29 | 2023-08-08 | Veeva Systems Inc. | Displaying reports in a content management system |
US11853359B1 (en) * | 2019-01-31 | 2023-12-26 | Veeva Systems Inc. | System and method for reporting multiple objects in enterprise content management |
CN111625539A (zh) * | 2020-04-28 | 2020-09-04 | 四川省金科成地理信息技术有限公司 | 一种应用于信息资源共享平台的索引创建及数据检索方法 |
USD1003317S1 (en) | 2021-03-09 | 2023-10-31 | Esko Software Bv | Display screen or portion thereof with graphical user interface |
US20230395208A1 (en) * | 2022-06-06 | 2023-12-07 | Commure, Inc. | Federated data platform integrating multiple healthcare data sources including fhir and non-fhir sources |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6160549A (en) * | 1994-07-29 | 2000-12-12 | Oracle Corporation | Method and apparatus for generating reports using declarative tools |
US6243710B1 (en) * | 1997-12-22 | 2001-06-05 | Sun Microsystems, Inc. | Methods and apparatus for efficiently splitting query execution across client and server in an object-relational mapping |
US20030229640A1 (en) * | 2002-06-07 | 2003-12-11 | International Business Machines Corporation | Parallel database query processing for non-uniform data sources via buffered access |
US6748374B1 (en) * | 1998-12-07 | 2004-06-08 | Oracle International Corporation | Method for generating a relational database query statement using one or more templates corresponding to search conditions in an expression tree |
CN101454779A (zh) * | 2006-03-27 | 2009-06-10 | 甲骨文国际公司 | 基于搜索的应用开发框架 |
US20100153432A1 (en) * | 2008-12-11 | 2010-06-17 | Sap Ag | Object based modeling for software application query generation |
US20120191698A1 (en) * | 2011-01-20 | 2012-07-26 | Accenture Global Services Limited | Query plan enhancement |
US8260764B1 (en) * | 2004-03-05 | 2012-09-04 | Open Text S.A. | System and method to search and generate reports from semi-structured data |
CN103299267A (zh) * | 2010-12-20 | 2013-09-11 | 销售力网络公司 | 用于执行多租户存储中的交叉存储连接的方法和系统 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06348562A (ja) * | 1993-06-08 | 1994-12-22 | Hitachi Ltd | データベース制御情報管理システム |
US6965891B1 (en) * | 2001-02-27 | 2005-11-15 | Oracle International Corporation | Method and mechanism for partition pruning |
US6931390B1 (en) * | 2001-02-27 | 2005-08-16 | Oracle International Corporation | Method and mechanism for database partitioning |
US7293014B2 (en) * | 2001-06-18 | 2007-11-06 | Siebel Systems, Inc. | System and method to enable searching across multiple databases and files using a single search |
US7546287B2 (en) * | 2001-06-18 | 2009-06-09 | Siebel Systems, Inc. | System and method to search a database for records matching user-selected search criteria and to maintain persistency of the matched records |
US7213013B1 (en) * | 2001-06-18 | 2007-05-01 | Siebel Systems, Inc. | Method, apparatus, and system for remote client search indexing |
US7657552B2 (en) * | 2003-02-12 | 2010-02-02 | Microsoft Corporation | Declarative sequenced report parameterization |
US20050010430A1 (en) * | 2003-05-13 | 2005-01-13 | Holger Gockel | Systems, methods, and software applications for modeling the structure of enterprises |
US20050273705A1 (en) * | 2004-06-08 | 2005-12-08 | Fortellio, Llc | Method and system for automatically creating network software applications |
EP1624386B1 (en) * | 2004-08-06 | 2013-08-28 | Sap Ag | Searching for data objects |
US7747562B2 (en) * | 2006-08-15 | 2010-06-29 | International Business Machines Corporation | Virtual multidimensional datasets for enterprise software systems |
US7895150B2 (en) * | 2006-09-07 | 2011-02-22 | International Business Machines Corporation | Enterprise planning and performance management system providing double dispatch retrieval of multidimensional data |
US7899837B2 (en) * | 2006-09-29 | 2011-03-01 | Business Objects Software Ltd. | Apparatus and method for generating queries and reports |
JP2009157678A (ja) * | 2007-12-27 | 2009-07-16 | Canon Marketing Japan Inc | データベース検索装置、データベース検索システム、データベース検索方法、プログラム、記録媒体 |
US7953727B2 (en) * | 2008-04-04 | 2011-05-31 | International Business Machines Corporation | Handling requests for data stored in database tables |
KR101380777B1 (ko) * | 2008-08-22 | 2014-04-02 | 정태우 | 영상에 포함된 객체를 색인하는 방법 |
WO2011130706A2 (en) * | 2010-04-16 | 2011-10-20 | Salesforce.Com, Inc. | Methods and systems for performing cross store joins in a multi-tenant store |
JP5712686B2 (ja) * | 2011-03-07 | 2015-05-07 | 株式会社リコー | レポート作成装置、レポート作成システム、レポート作成方法、レポート作成プログラム及び記憶媒体 |
WO2013096887A1 (en) * | 2011-12-23 | 2013-06-27 | Amiato, Inc. | Scalable analysis platform for semi-structured data |
US9285960B2 (en) * | 2011-12-30 | 2016-03-15 | International Business Machines Corporation | Business intelligence dashboard assembly tool with indications of relationships among content elements |
US8957908B2 (en) * | 2012-07-16 | 2015-02-17 | International Business Machines Corporation | Rapid representational thumbnail images for business intelligence dashboards |
US9240061B2 (en) * | 2012-10-02 | 2016-01-19 | International Business Machines Corporation | Pattern representation images for business intelligence dashboard objects |
US9298814B2 (en) * | 2013-03-15 | 2016-03-29 | Maritz Holdings Inc. | Systems and methods for classifying electronic documents |
CA3078018C (en) * | 2013-03-15 | 2023-08-22 | Amazon Technologies, Inc. | Scalable analysis platform for semi-structured data |
US20140278813A1 (en) * | 2013-03-15 | 2014-09-18 | International Business Machines Corporation | Recommendation engine |
US11586600B2 (en) * | 2013-11-05 | 2023-02-21 | Varonis Systems, Inc | In-advance indexing |
-
2014
- 2014-11-01 US US14/530,694 patent/US9208200B1/en active Active
-
2015
- 2015-10-22 EP EP15191084.1A patent/EP3018595A1/en not_active Ceased
- 2015-10-30 US US14/929,010 patent/US9619533B2/en active Active
- 2015-10-30 JP JP2015214617A patent/JP5944039B2/ja active Active
- 2015-11-02 CN CN201510732523.XA patent/CN105574070A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6160549A (en) * | 1994-07-29 | 2000-12-12 | Oracle Corporation | Method and apparatus for generating reports using declarative tools |
US6243710B1 (en) * | 1997-12-22 | 2001-06-05 | Sun Microsystems, Inc. | Methods and apparatus for efficiently splitting query execution across client and server in an object-relational mapping |
US6748374B1 (en) * | 1998-12-07 | 2004-06-08 | Oracle International Corporation | Method for generating a relational database query statement using one or more templates corresponding to search conditions in an expression tree |
US20030229640A1 (en) * | 2002-06-07 | 2003-12-11 | International Business Machines Corporation | Parallel database query processing for non-uniform data sources via buffered access |
US8260764B1 (en) * | 2004-03-05 | 2012-09-04 | Open Text S.A. | System and method to search and generate reports from semi-structured data |
CN101454779A (zh) * | 2006-03-27 | 2009-06-10 | 甲骨文国际公司 | 基于搜索的应用开发框架 |
US20100153432A1 (en) * | 2008-12-11 | 2010-06-17 | Sap Ag | Object based modeling for software application query generation |
CN103299267A (zh) * | 2010-12-20 | 2013-09-11 | 销售力网络公司 | 用于执行多租户存储中的交叉存储连接的方法和系统 |
US20120191698A1 (en) * | 2011-01-20 | 2012-07-26 | Accenture Global Services Limited | Query plan enhancement |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111954996A (zh) * | 2017-12-19 | 2020-11-17 | 维我系统公司 | 用于控制电子通信的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2016091560A (ja) | 2016-05-23 |
US20160125049A1 (en) | 2016-05-05 |
US9208200B1 (en) | 2015-12-08 |
US9619533B2 (en) | 2017-04-11 |
JP5944039B2 (ja) | 2016-07-05 |
EP3018595A1 (en) | 2016-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105574070A (zh) | 内容管理系统及在其中报告多个对象的计算机实现方法 | |
CA2684822C (en) | Data transformation based on a technical design document | |
Groth et al. | API-centric linked data integration: The open PHACTS discovery platform case study | |
RU2546322C2 (ru) | Расширение возможностей сотрудничества при использовании внешних данных | |
Callahan et al. | Ontology-based querying with Bio2RDF’s linked open data | |
US8856157B2 (en) | Automatic detection of columns to be obfuscated in database schemas | |
US20150095841A1 (en) | Systems and methods for composable analytics | |
US20130318095A1 (en) | Distributed computing environment for data capture, search and analytics | |
JP6542880B2 (ja) | データソースからデータターゲットにデータを転送するためのインポート手順の呼出しの単純化 | |
CN112363695B (zh) | Pmml文件及其运行时环境与工业软件的集成方法 | |
US9823922B1 (en) | Source code mapping through context specific key word indexes and fingerprinting | |
US20170109341A1 (en) | Method of Data Capture, Storage and Retrieval Through User Created Form Templates and Data Item Templates by Executing Computer-Executable Instructions Stored On a Non-Transitory Computer-Readable Medium | |
US20080082521A1 (en) | Method and apparatus for information visualization and analysis | |
Antezana et al. | The Cell Cycle Ontology: an application ontology for the representation and integrated analysis of the cell cycle process | |
Touré et al. | STON: exploring biological pathways using the SBGN standard and graph databases | |
González et al. | Automatically exposing openlifedata via sadi semantic web services | |
WO2014070277A1 (en) | Cohort identification system | |
CN102918531A (zh) | 用于为商业智能服务器使用的数据提供多语言支持的系统和方法 | |
Lozano-Rubí et al. | Owling clinical data repositories with the ontology web language | |
US10691663B2 (en) | Database table copy | |
US20080172601A1 (en) | Tool for configuring available functions of an application | |
Jamil | Designing integrated computational biology pipelines visually | |
US20220269744A1 (en) | Methods and systems for enabling dynamic filters for software search optimization | |
US20190147082A1 (en) | Reporting and data governance management | |
EP2544104A1 (en) | Database consistent sample data extraction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160511 |