CN110543517A - 一种基于Elasticsearch实现海量数据复杂查询方法、装置及介质 - Google Patents
一种基于Elasticsearch实现海量数据复杂查询方法、装置及介质 Download PDFInfo
- Publication number
- CN110543517A CN110543517A CN201910792472.8A CN201910792472A CN110543517A CN 110543517 A CN110543517 A CN 110543517A CN 201910792472 A CN201910792472 A CN 201910792472A CN 110543517 A CN110543517 A CN 110543517A
- Authority
- CN
- China
- Prior art keywords
- search
- class
- matching
- query
- attribute
- 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.)
- Granted
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/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于Elasticsearch实现海量数据复杂查询方法、装置及介质,该方法先构建Elasticsearch集群作为分布式数据库用于存储海量数据,然后基于匹配模式、数据类型、数据类型属性及匹配策略构建搜索模型,再使用Java语言实现搜索模型的父类、搜索查询条件组合类及分桶聚合字段类,再接收用户输入的查询条件并生成搜索对象,然后基于所述搜索模型使用所述搜索对象生成搜索实例,然后使用解析引擎对所述搜索实例进行解析并转换成ES‑DSL查询语句,最后将所述DSL查询语句提交至Elasticsearch集群进行查询返回查询结果至所述用户。本发明能够快速通过Elasticsearch搭建海量的全文检索搜索引擎,并且仅仅通过配置既能实现海量数据的复杂查询而无需专业编程;能得到亿万级数据毫秒级响应的查询体验。
Description
技术领域
本发明涉及数据搜索技术领域,特别是一种基于Elasticsearch实现海量数据复杂查询方法、装置及介质。
背景技术
大数据时代,企业如何快速准确的从海量数据中搜索关键信息。对于企业来说,搭建一套海量数据的全文检索系统,需要考虑许多因素,不考虑算法,首先就需要搭建一套稳定的分布式文件系统,更遑论搜索引擎领域中各种算法及为了满足个性化的定制需求而搭建灵活,健壮的架构体系。而市面上针对海量数据的全文检索系统,如“google”,“百度”,“搜狗”等公司无一不是大型公司。因此对于中小企业来说,如何以小成本快速搭建一套稳定,易用的海量数据全文检索引擎是一件意义重大的事情。
而随着solr,lucence的出现,让海量数据搜索这个原本在象牙塔里的技术不再需要那么高的门槛,而随着Elasticsearch的出现又将海量数据搜索引擎的开源方案拔高到另一层次,支持数据的实时写入,实时搜索,海量数据毫秒级返回。
但是,现有的Elasticsearch在二次开发时需要复杂的编程技术,使得构建检索检索耗时耗力。
发明内容
本发明针对上述现有技术中的缺陷,提出了如下技术方案。
一种基于Elasticsearch实现海量数据复杂查询的方法,该方法包括:
数据库构建步骤S1,构建Elasticsearch集群作为分布式数据库用于存储海量数据;
搜索模型建立步骤S2,基于匹配模式、数据类型、数据类型属性及匹配策略构建搜索模型;
搜索模型实现步骤S3,使用Java语言实现搜索模型的父类、搜索查询条件组合类及分桶聚合字段类;
搜索实例生成步骤S4,接收用户输入的查询条件并生成搜索对象,然后基于所述搜索模型使用所述搜索对象生成搜索实例;
解析步骤S5,使用解析引擎对所述搜索实例进行解析并转换成ES-DSL查询语句;
查询步骤S6,将所述DSL查询语句提交至Elasticsearch集群进行查询返回查询结果至所述用户。
更进一步地,搜索模型建立步骤S2是针对结构化数据建立搜索模型,包括以下步骤:
S21、确定搜索查询方式的匹配模式,所述匹配模式包括:a、全匹配,匹配内容应包含用户输入的所有完整关键词,关键词可以为一个或多个;b、部分匹配,匹配内容应包含用户输入的任意一个关键词;c、排他匹配,匹配内容应不包含用户输入的任意一个关键词,关键词可以为一个或多个;d、时间匹配,匹配数据的创建时间或修改时间应包含在用户输入的时间范围内;e、多条件组合匹配,匹配内容应包含用户输入的结构化数据中的多个属性条件组合;
S22、确定需要搜索的结构化数据类型,定义结构化数据类型,数据的业务含义,数据结构与数据库中表模型的对应关系;
S23、确定需要搜索的结构化数据类型属性,构建描述结构化数据类型中的属性集,所述数据类型属性与Elasticsearch中定义的数据类型的属性一一对应;
S24、定义数据类型属性值与搜索内容的匹配策略,所述匹配策略为模糊匹配、分词匹配、分词集降维匹配、分词间距匹配、短语匹配、前缀匹配或正则表达式匹配。
更进一步地,搜索模型实现步骤S3包括:
S31、定义统一抽象搜索父类BaseQueryObject.class,该父类包含以下公有属性:pageSize表示查询返回结果分页显示时每页展示的数据条数,startIndex表示查询返回结果的起始数据的坐标,whereGroups表示复杂多条件组合查询,bucket表示分桶统计,sorts表示多级排序;
S32、定义搜索查询条件组合类WhereGroup.class,该组合类包含以下公有属性:groupName表示条件组名,gourpElements表示组元素,combineInnnerSeparator表示组内条件和条件之间的连接符,combineOuterSeparator表示该组和外部组之间的连接符;
S33、定义分桶聚合字段类BucketField.class,该分桶聚合字段类包含以下公有属性:bucketName表示分桶统计名,bucketField表示需要对数据模型中的某一属性进行分桶聚合操作,childBucketField表示桶和桶之间的相互嵌套关系,metrixs表示分桶后对桶内数据进行度量计算;
S34、定义度量字段类MetrixField.class,该度量字段类包含以下公有属性:type表示度量的类型,field表示需要度量的字段,name表示给该度量命名,gte表示大于等于的关系,lte表示小于等于的关系。
更进一步地,所述搜索实例生成步骤S4包括:
S41、定义业务搜索对象,包括:a、创建业务搜索对象XXXQO.class并继承至BaseQueryObject.class父类;b、给业务搜索对象XXXQO.class赋予业务属性;c、定义复杂搜索字段类ComplexQueryField.class,用来接受用户前端查询请求的输入,存放字符串或字符串数组;d、定义复杂搜索范围字典类RangeQueryField.class;
S42、定义业务搜索对象的类型注解,所述类型注解用于将配置信息作为元数据描述在类的类型、属性和方法上;
S43、定义业务搜索对象的属性注解,所述属性注解包括:a、字符型注解,用来描述字符串及数值;b、范围注解,用来描述一个数值范围或者时间范围;然后定义注解属性中的匹配策略;
S44、通过注解描述业务搜索对象,将类型注解和属性注解通过注释的方式添加业务搜索对象的类型声明和属性声明上,用以描述业务搜索对象和数据仓库Elasticsearch之间的类型及属性间映射关系及匹配策略;
S45、创建业务搜索对象实例,通过用户在前端应用输入的查询条件作为初始值,用来初始化业务搜索对象,并创建业务搜索对象的实例。
更进一步地,创建业务搜索对象实例的操作为:a、创建JSON对象用来描述业务搜索对象,b、搭建Springboot快速WEB服务框架并对外提供服务,通过RESTful API设计规范及Http/Https协议提交JSON对象给RESTful接口服务,来初始化业务搜索对象,并创建业务搜索对象实例,c、业务搜索对象实例被自动创建,并且被JSON对象赋值。
更进一步地,解析步骤S5包括:
S51、获取业务查询对象已配置完成的元数据;
S52、获取创建的业务搜索对象实例;
S53、通过java编写解析引擎,根据业务搜索对象实例和元数据解析成ES-DSL查询语句。
本发明还提出了一种基于Elasticsearch实现海量数据复杂查询的装置,该装置包括:
数据库构建单元11,用于构建Elasticsearch集群作为分布式数据库用于存储海量数据;
搜索模型建立单元12,用于基于匹配模式、数据类型、数据类型属性及匹配策略构建搜索模型;
搜索模型实现单元13,使用Java语言实现搜索模型的父类、搜索查询条件组合类及分桶聚合字段类;
搜索实例生成单元14,用于接收用户输入的查询条件并生成搜索对象,然后基于所述搜索模型使用所述搜索对象生成搜索实例;
解析单元15,使用解析引擎对所述搜索实例进行解析并转换成ES-DSL查询语句;
查询单元16,用于将所述DSL查询语句提交至Elasticsearch集群进行查询返回查询结果至所述用户。
更进一步地,所述搜索模型建立单元12是针对结构化数据建立搜索模型,其包括:
匹配模式确定单元21,确定搜索查询方式的匹配模式,所述匹配模式包括:a、全匹配,匹配内容应包含用户输入的所有完整关键词,关键词可以为一个或多个;b、部分匹配,匹配内容应包含用户输入的任意一个关键词;c、排他匹配,匹配内容应不包含用户输入的任意一个关键词,关键词可以为一个或多个;d、时间匹配,匹配数据的创建时间或修改时间应包含在用户输入的时间范围内;e、多条件组合匹配,匹配内容应包含用户输入的结构化数据中的多个属性条件组合;
数据类型模式确定单元22,确定需要搜索的结构化数据类型,定义结构化数据类型,数据的业务含义,数据结构与数据库中表模型的对应关系;
类型属性确定单元23,确定需要搜索的结构化数据类型属性,构建描述结构化数据类型中的属性集,所述数据类型属性与Elasticsearch中定义的数据类型的属性一一对应;
匹配策略确定单元24、定义数据类型属性值与搜索内容的匹配策略,所述匹配策略为模糊匹配、分词匹配、分词集降维匹配、分词间距匹配、短语匹配、前缀匹配或正则表达式匹配。
更进一步地,搜索模型实现单元13包括:
搜索父类定义单元31,定义统一抽象搜索父类BaseQueryObject.class,该父类包含以下公有属性:pageSize表示查询返回结果分页显示时每页展示的数据条数,startIndex表示查询返回结果的起始数据的坐标,whereGroups表示复杂多条件组合查询,bucket表示分桶统计,sorts表示多级排序;
组合类定义单元32,定义搜索查询条件组合类WhereGroup.class,该组合类包含以下公有属性:groupName表示条件组名,gourpElements表示组元素,combineInnnerSeparator表示组内条件和条件之间的连接符,combineOuterSeparator表示该组和外部组之间的连接符;
分桶聚合字段类定义单元33,定义分桶聚合字段类BucketField.class,该分桶聚合字段类包含以下公有属性:bucketName表示分桶统计名,bucketField表示需要对数据模型中的某一属性进行分桶聚合操作,childBucketField表示桶和桶之间的相互嵌套关系,metrixs表示分桶后对桶内数据进行度量计算;
度量字段类定义单元34,定义度量字段类MetrixField.class,该度量字段类包含以下公有属性:type表示度量的类型,field表示需要度量的字段,name表示给该度量命名,gte表示大于等于的关系,lte表示小于等于的关系。
更进一步地,所述搜索实例生成单元14包括:
搜索对象定义单元41,定义业务搜索对象,包括:a、创建业务搜索对象XXXQO.class并继承至BaseQueryObject.class父类;b、给业务搜索对象XXXQO.class赋予业务属性;c、定义复杂搜索字段类ComplexQueryField.class,用来接受用户前端查询请求的输入,存放字符串或字符串数组;d、定义复杂搜索范围字典类RangeQueryField.class;
类型注解定义单元42,定义业务搜索对象的类型注解,所述类型注解用于将配置信息作为元数据描述在类的类型、属性和装置上;
属性注解定义单元43,定义业务搜索对象的属性注解,所述属性注解包括:a、字符型注解,用来描述字符串及数值;b、范围注解,用来描述一个数值范围或者时间范围;然后定义注解属性中的匹配策略;
映射单元44,通过注解描述业务搜索对象,将类型注解和属性注解通过注释的方式添加业务搜索对象的类型声明和属性声明上,用以描述业务搜索对象和数据仓库Elasticsearch之间的类型及属性间映射关系及匹配策略;
实例生成单元45,创建业务搜索对象实例,通过用户在前端应用输入的查询条件作为初始值,用来初始化业务搜索对象,并创建业务搜索对象的实例。
更进一步地,创建业务搜索对象实例的操作为:a、创建JSON对象用来描述业务搜索对象,b、搭建Springboot快速WEB服务框架并对外提供服务,通过RESTful API设计规范及Http/Https协议提交JSON对象给RESTful接口服务,来初始化业务搜索对象,并创建业务搜索对象实例,c、业务搜索对象实例被自动创建,并且被JSON对象赋值。
更进一步地,解析单元15包括:
元数据获取单元51,获取业务查询对象已配置完成的元数据;
实例获取单元52,获取创建的业务搜索对象实例;
解析单元53,通过java编写解析引擎,根据业务搜索对象实例和元数据解析成ES-DSL查询语句。
本发明的技术效果在于:本发明先构建Elasticsearch集群作为分布式数据库用于存储海量数据,然后基于匹配模式、数据类型、数据类型属性及匹配策略构建搜索模型,再使用Java语言实现搜索模型的父类、搜索查询条件组合类及分桶聚合字段类,再接收用户输入的查询条件并生成搜索对象,然后基于所述搜索模型使用所述搜索对象生成搜索实例,然后使用解析引擎对所述搜索实例进行解析并转换成ES-DSL查询语句,最后将所述DSL查询语句提交至Elasticsearch集群进行查询返回查询结果至所述用户。
本发明能够快速通过Elasticsearch搭建海量的全文检索搜索引擎,并且仅仅通过配置既能实现海量数据的复杂查询而无需专业的编程开发人员;能得到亿万级数据毫秒级响应的查询体验。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显。
图1是根据本发明的实施例的一种基于Elasticsearch实现海量数据复杂查询方法的流程图。
图2是根据本发明的实施例的搜索模型建立步骤的流程图。
图3是根据本发明的实施例的搜索模型实现步骤的流程图。
图4是根据本发明的实施例的搜索实例生成步骤的流程图。
图5是根据本发明的实施例的解析步骤的流程图。
图6是根据本发明的实施例的一种基于Elasticsearch实现海量数据复杂查询装置的结构图。
图7是根据本发明的实施例的搜索模型建立单元的结构图。
图8是根据本发明的实施例的搜索模型实现单元的结构图。
图9是根据本发明的实施例的搜索实例生成单元的结构图。
图10是根据本发明的实施例的解析单元的结构图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了本发明的一种基于Elasticsearch实现海量数据复杂查询的方法,该方法包括以下步骤。
数据库构建步骤S1,构建Elasticsearch集群作为分布式数据库用于存储海量数据。
所述步骤S1选择安装ES5以上的版本。Elasticsearch集群(也称为ES集群)作为可快速存储海量数据并能提供实时查询的一种优秀的非关系型文档数据库。配合同版本号软件Kibana使用,Kibana是一个基于ES5的即时查询分析工具。全文所述编程实现基于JAVA编程语言规范实现,亦可选择其他编程语言。
搜索模型建立步骤S2,基于匹配模式、数据类型、数据类型属性及匹配策略构建搜索模型。
所述步骤S2中定义复杂搜索模型,搜索的对象包含结构化和非结构化的数据。以结构化数据搜索为例,结构化数据搜索涵盖了对多字段的组合条件搜索,定义复杂搜索模型。一般来说,非结构化数据的查询依赖于其说明,本发明重点以结构化数据的查询为例进行说明,非结构化数据可以进行类型的操作。
搜索模型实现步骤S3,使用Java语言实现搜索模型的父类、搜索查询条件组合类及分桶聚合字段类。
搜索实例生成步骤S4,接收用户输入的查询条件并生成搜索对象,然后基于所述搜索模型使用所述搜索对象生成搜索实例;
解析步骤S5,使用解析引擎对所述搜索实例进行解析并转换成ES-DSL查询语句。
查询步骤S6,将所述DSL查询语句提交至Elasticsearch集群进行查询返回查询结果至所述用户。步骤S6提交查询语句返回查询结果具体为:将DSL语句提交给ES集群,集群通过DSL进行查询,并返回结果集。
在一个实施例中,如图2所示,搜索模型建立步骤S2是针对结构化数据建立搜索模型,包括以下步骤。
S21、确定搜索查询方式的匹配模式,所述匹配模式包括:a、全匹配,匹配内容应包含用户输入的所有完整关键词,关键词可以为一个或多个;b、部分匹配,匹配内容应包含用户输入的任意一个关键词,可自定义匹配度,如三个关键词需匹配其中的一个或多个;c、排他匹配,匹配内容应不包含用户输入的任意一个关键词,关键词可以为一个或多个;d、时间匹配,匹配数据的创建时间或修改时间应包含在用户输入的时间范围内;e、多条件组合匹配,匹配内容应包含用户输入的结构化数据中的多个属性条件组合,支持“与(and)、或(or)、非(not)”关系的任意组合。
例如:
(attribute_title=’xx’and attribute_content=’asd222’)
or(attribute_title=’cc’and attribute_content=’by222’)。
S22、确定需要搜索的结构化数据类型,定义结构化数据类型,数据的业务含义,数据结构与数据库中表模型的对应关系。此处采用ES作为数据的存储引擎,因此需描述数据类型与ES定义的数据模型对应关系。在ES中描述为:type(类型),index(索引)。其中type相当于传统关系型数据库中的数据库名,index相当于表名。
S23、确定需要搜索的结构化数据类型属性,构建描述结构化数据类型中的属性集,所述数据类型属性与Elasticsearch中定义的数据类型的属性一一对应。
S24、定义数据类型属性值与搜索内容的匹配策略,所述匹配策略为模糊匹配、分词匹配、分词集降维匹配、分词间距匹配、短语匹配、前缀匹配或正则表达式匹配。如“模糊匹配、分词匹配、分词集降维匹配、分词间距匹配,短语匹配,前缀匹配,正则表达式匹配”等等。
在一个实施例中,如图3所示,搜索模型实现步骤S3包括以下步骤。
S31、定义统一抽象搜索父类BaseQueryObject.class,该父类包含以下公有属性:pageSize表示查询返回结果分页显示时每页展示的数据条数,startIndex表示查询返回结果的起始数据的坐标,whereGroups表示复杂多条件组合查询,bucket表示分桶统计,sorts表示多级排序。BaseQueryObject.class的属性、类型及用途具体如下表所示。
S32、定义搜索查询条件组合类WhereGroup.class,该组合类包含以下公有属性:groupName表示条件组名,gourpElements表示组元素,combineInnnerSeparator表示组内条件和条件之间的连接符,combineOuterSeparator表示该组和外部组之间的连接符。定义WhereGroup.class搜索查询条件组合类如下表所示。
S33、定义分桶聚合字段类BucketField.class,该分桶聚合字段类包含以下公有属性:bucketName表示分桶统计名,bucketField表示需要对数据模型中的某一属性进行分桶聚合操作,childBucketField表示桶和桶之间的相互嵌套关系,metrixs表示分桶后对桶内数据进行度量计算。定义BucketField.class分桶聚合字段类如下表所示。
S34、定义度量字段类MetrixField.class,该度量字段类包含以下公有属性:type表示度量的类型,field表示需要度量的字段,name表示给该度量命名,gte表示大于等于的关系,lte表示小于等于的关系。定义MetrixField.class度量字段类如下表所示。
在一个实施例中,如图4所示,所述搜索实例生成步骤S4包括以下步骤。
S41、定义业务搜索对象,包括:a、创建业务搜索对象XXXQO.class并继承至BaseQueryObject.class父类;代码如下:
public class EmployeeQO extends BaseQueryObject{
}
b、给业务搜索对象XXXQO.class赋予业务属性;代码如下:
public class EmployeeQO extends BaseQueryObject{
private ComplexQueryField<String>emp_id;
private ComplexQueryField<String>name;
private ComplexQueryField<String>name_match;
private RangeQueryField<String>salary;
private ComplexQueryField<String>introduce;
private ComplexQueryField<String>dept;
private ComplexQueryField<String>prj_org;
private RangeQueryField<String>entry_date;
private RangeQueryField<String>update_time;
}
c、定义复杂搜索字段类ComplexQueryField.class,用来接受用户前端查询请求的输入,存放字符串或字符串数组;定义ComplexQueryField.class字符串查询字段类如下表所示。
d、定义复杂搜索范围字典类RangeQueryField.class;定义RangeQueryField.class范围查询字段类如下表所示。
S42、定义业务搜索对象的类型注解,所述类型注解用于将配置信息作为元数据描述在类的类型、属性和方法上;注解的意义在于将配置信息作为元数据,描述在类的类型,属性,方法上。定义@ELSInfo注解。该注解用来描述JAVA类型(即不能用来描述JAVA类的属性和方法)。
S43、定义业务搜索对象的属性注解,以下两种注解仅用于属性级别的描述。
以下两种注解中都包含匹配策略这个属性compareStratygy,可通过设置匹配策略来进行用户输入和数据库中的数据进行匹配,这么做的好处在于无需让前端开发人员过多的涉及复杂的匹配策略,匹配策略往往跟业务有关,具体业务要求匹配的策略和精度也不尽相同。所述属性注解包括:a、字符型注解,用来描述字符串及数值;字符型注解可以用来描述字符串,数值等等。
b、范围注解,用来描述一个数值范围或者时间范围;具体如下。
然后定义注解属性中的匹配策略如下。
定义QueryFieldCompareStratygy.class类型注解
S44、通过注解描述业务搜索对象,将类型注解和属性注解通过注释的方式添加业务搜索对象的类型声明和属性声明上,用以描述业务搜索对象和数据仓库Elasticsearch之间的类型及属性间映射关系及匹配策略。
如EmployeeQO代码片段所示,该代码片段描述业务搜索类“雇员”,雇员有如下属性:雇员id,雇员姓名,薪酬等,具体完整范例将在实施例章节中展开:
S45、创建业务搜索对象实例,通过用户在前端应用输入的查询条件作为初始值,用来初始化业务搜索对象,并创建业务搜索对象的实例。
在一个实施例中,创建业务搜索对象实例的操作为:a、创建JSON对象用来描述业务搜索对象,
b、搭建Springboot快速WEB服务框架并对外提供服务,通过RESTful API设计规范及Http/Https协议提交JSON对象给RESTful接口服务,来初始化业务搜索对象,并创建业务搜索对象实例,如下表所示:
属性集 | JSON | EmployeeQO | BaseQueryObject |
页大小 | pageSize | 通过继承父类 | pageSize |
开始坐标 | startIndex | 通过继承父类 | startIndex |
雇员姓名 | name | name | 子类属性 |
查询条件 | whereGroups | 通过继承父类 | whereGroups |
其他 | 。。。 | 。。。 | 。。。 |
c、业务搜索对象实例被自动创建,并且被JSON对象赋值。
在一个实施例中,如图5所示,解析步骤S5包括以下步骤。
S51、获取业务查询对象已配置完成的元数据。
S52、获取创建的业务搜索对象实例。
S53、通过java编写解析引擎,根据业务搜索对象实例和元数据解析成ES-DSL查询语句。
上面的一个实施例找那个给出了如何查找雇员里姓名为‘彭万里’的员工,这属于单条件进行查询,类似的,可以进行数值查询(如查找salary>3000的员工)、时间查询(如查找在一月份入职的员工)。
下面的一个实施例描述了进行多条件的复杂查询,例如,查询薪水大于4000,小于5000,并且是2018年1月入职的员工,其操作代码如下。
另一个实施例中描述了多条件复杂查询and、or,例如,查询部门是(软件研发1部或软件研发2部)或薪水大于4000,且都在云总线项目组的员工,其操作代码如下。
另一个实施例中描述了分组聚合,例如,按照部门,项目组进行聚合。统计每个部门下的项目组的内的员工数量,其操作代码如下。
另一个实施例中描述了度量,例如,求部门下的薪水平均值,最小值,最大值,总数,其操作代码如下。
再一个实施例中描述了度量2次过滤,例如,求部门下的薪水平均值>4000的人数,其操作代码如下。
通过上述实施例可以得之本发明的方法可以实现单条件、多条件组合的查询,本发明的方法先构建Elasticsearch集群作为分布式数据库用于存储海量数据,然后基于匹配模式、数据类型、数据类型属性及匹配策略构建搜索模型,再使用Java语言实现搜索模型的父类、搜索查询条件组合类及分桶聚合字段类,再接收用户输入的查询条件并生成搜索对象,然后基于所述搜索模型使用所述搜索对象生成搜索实例,然后使用解析引擎对所述搜索实例进行解析并转换成ES-DSL查询语句,最后将所述DSL查询语句提交至Elasticsearch集群进行查询返回查询结果至所述用户。本发明能够快速通过Elasticsearch搭建海量的全文检索搜索引擎,并且仅仅通过配置既能实现海量数据的复杂查询而无需专业的编程开发人员;能得到亿万级数据毫秒级响应的查询体验。这是本发明的重要发明点。
进一步参考图6,作为对上述图1所示方法的实现,本申请提供了一种基于Elasticsearch实现海量数据复杂查询的装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以包含于各种电子设备或通过网络连接的多个电子设备中,对于上述详细介绍的内容同样适应于图6所示的装置中,下面不再详细赘述。
图6示出了本发明的图1示出了本发明的一种基于Elasticsearch实现海量数据复杂查询的装置,该装置包括以下单元。
数据库构建单元11,用于构建Elasticsearch集群作为分布式数据库用于存储海量数据。
搜索模型建立单元12,用于基于匹配模式、数据类型、数据类型属性及匹配策略构建搜索模型。
搜索模型实现单元13,使用Java语言实现搜索模型的父类、搜索查询条件组合类及分桶聚合字段类。
搜索实例生成单元14,用于接收用户输入的查询条件并生成搜索对象,然后基于所述搜索模型使用所述搜索对象生成搜索实例。
解析单元15,使用解析引擎对所述搜索实例进行解析并转换成ES-DSL查询语句。
查询单元16,用于将所述DSL查询语句提交至Elasticsearch集群进行查询返回查询结果至所述用户。
在一个实施例中,如图7所示,所述搜索模型建立单元12是针对结构化数据建立搜索模型,其包括以下单元。
匹配模式确定单元21,确定搜索查询方式的匹配模式,所述匹配模式包括:a、全匹配,匹配内容应包含用户输入的所有完整关键词,关键词可以为一个或多个;b、部分匹配,匹配内容应包含用户输入的任意一个关键词;c、排他匹配,匹配内容应不包含用户输入的任意一个关键词,关键词可以为一个或多个;d、时间匹配,匹配数据的创建时间或修改时间应包含在用户输入的时间范围内;e、多条件组合匹配,匹配内容应包含用户输入的结构化数据中的多个属性条件组合。
数据类型模式确定单元22,确定需要搜索的结构化数据类型,定义结构化数据类型,数据的业务含义,数据结构与数据库中表模型的对应关系。
类型属性确定单元23,确定需要搜索的结构化数据类型属性,构建描述结构化数据类型中的属性集,所述数据类型属性与Elasticsearch中定义的数据类型的属性一一对应。
匹配策略确定单元24、定义数据类型属性值与搜索内容的匹配策略,所述匹配策略为模糊匹配、分词匹配、分词集降维匹配、分词间距匹配、短语匹配、前缀匹配或正则表达式匹配。
在一个实施例中,如图8所示,搜索模型实现单元13包括以下单元。
搜索父类定义单元31,定义统一抽象搜索父类BaseQueryObject.class,该父类包含以下公有属性:pageSize表示查询返回结果分页显示时每页展示的数据条数,startIndex表示查询返回结果的起始数据的坐标,whereGroups表示复杂多条件组合查询,bucket表示分桶统计,sorts表示多级排序。
组合类定义单元32,定义搜索查询条件组合类WhereGroup.class,该组合类包含以下公有属性:groupName表示条件组名,gourpElements表示组元素,combineInnnerSeparator表示组内条件和条件之间的连接符,combineOuterSeparator表示该组和外部组之间的连接符。
分桶聚合字段类定义单元33,定义分桶聚合字段类BucketField.class,该分桶聚合字段类包含以下公有属性:bucketName表示分桶统计名,bucketField表示需要对数据模型中的某一属性进行分桶聚合操作,childBucketField表示桶和桶之间的相互嵌套关系,metrixs表示分桶后对桶内数据进行度量计算。
度量字段类定义单元34,定义度量字段类MetrixField.class,该度量字段类包含以下公有属性:type表示度量的类型,field表示需要度量的字段,name表示给该度量命名,gte表示大于等于的关系,lte表示小于等于的关系。
在一个实施例中,如图9所示,所述搜索实例生成单元14包括以下单元。
搜索对象定义单元41,定义业务搜索对象,包括:a、创建业务搜索对象XXXQO.class并继承至BaseQueryObject.class父类;b、给业务搜索对象XXXQO.class赋予业务属性;c、定义复杂搜索字段类ComplexQueryField.class,用来接受用户前端查询请求的输入,存放字符串或字符串数组;d、定义复杂搜索范围字典类RangeQueryField.class。
类型注解定义单元42,定义业务搜索对象的类型注解,所述类型注解用于将配置信息作为元数据描述在类的类型、属性和装置上。
属性注解定义单元43,定义业务搜索对象的属性注解,所述属性注解包括:a、字符型注解,用来描述字符串及数值;b、范围注解,用来描述一个数值范围或者时间范围;然后定义注解属性中的匹配策略。
映射单元44,通过注解描述业务搜索对象,将类型注解和属性注解通过注释的方式添加业务搜索对象的类型声明和属性声明上,用以描述业务搜索对象和数据仓库Elasticsearch之间的类型及属性间映射关系及匹配策略;
实例生成单元45,创建业务搜索对象实例,通过用户在前端应用输入的查询条件作为初始值,用来初始化业务搜索对象,并创建业务搜索对象的实例。
在一个实施例中,创建业务搜索对象实例的操作为:a、创建JSON对象用来描述业务搜索对象,b、搭建Springboot快速WEB服务框架并对外提供服务,通过RESTful API设计规范及Http/Https协议提交JSON对象给RESTful接口服务,来初始化业务搜索对象,并创建业务搜索对象实例,c、业务搜索对象实例被自动创建,并且被JSON对象赋值。
在一个实施例中,如图10所示,解析单元15包括以下单元。
元数据获取单元51,获取业务查询对象已配置完成的元数据。
实例获取单元52,获取创建的业务搜索对象实例。
解析单元53,通过java编写解析引擎,根据业务搜索对象实例和元数据解析成ES-DSL查询语句。
本发明的装置先构建Elasticsearch集群作为分布式数据库用于存储海量数据,然后基于匹配模式、数据类型、数据类型属性及匹配策略构建搜索模型,再使用Java语言实现搜索模型的父类、搜索查询条件组合类及分桶聚合字段类,再接收用户输入的查询条件并生成搜索对象,然后基于所述搜索模型使用所述搜索对象生成搜索实例,然后使用解析引擎对所述搜索实例进行解析并转换成ES-DSL查询语句,最后将所述DSL查询语句提交至Elasticsearch集群进行查询返回查询结果至所述用户。本发明能够快速通过Elasticsearch搭建海量的全文检索搜索引擎,并且仅仅通过配置既能实现海量数据的复杂查询而无需专业的编程开发人员;能得到亿万级数据毫秒级响应的查询体验。这是本发明的重要发明点。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后所应说明的是:以上实施例仅以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
Claims (13)
1.一种基于Elasticsearch实现海量数据复杂查询的方法,其特征在于,该方法包括:
数据库构建步骤S1,构建Elasticsearch集群作为分布式数据库用于存储海量数据;
搜索模型建立步骤S2,基于匹配模式、数据类型、数据类型属性及匹配策略构建搜索模型;
搜索模型实现步骤S3,使用Java语言实现搜索模型的父类、搜索查询条件组合类及分桶聚合字段类;
搜索实例生成步骤S4,接收用户输入的查询条件并生成搜索对象,然后基于所述搜索模型使用所述搜索对象生成搜索实例;
解析步骤S5,使用解析引擎对所述搜索实例进行解析并转换成ES-DSL查询语句;
查询步骤S6,将所述DSL查询语句提交至Elasticsearch集群进行查询返回查询结果至所述用户。
2.根据权利要求1所述的方法,其特征在于,搜索模型建立步骤S2是针对结构化数据建立搜索模型,包括以下步骤:
S21、确定搜索查询方式的匹配模式,所述匹配模式包括:a、全匹配,匹配内容应包含用户输入的所有完整关键词,关键词可以为一个或多个;b、部分匹配,匹配内容应包含用户输入的任意一个关键词;c、排他匹配,匹配内容应不包含用户输入的任意一个关键词,关键词可以为一个或多个;d、时间匹配,匹配数据的创建时间或修改时间应包含在用户输入的时间范围内;e、多条件组合匹配,匹配内容应包含用户输入的结构化数据中的多个属性条件组合;
S22、确定需要搜索的结构化数据类型,定义结构化数据类型,数据的业务含义,数据结构与数据库中表模型的对应关系;
S23、确定需要搜索的结构化数据类型属性,构建描述结构化数据类型中的属性集,所述数据类型属性与Elasticsearch中定义的数据类型的属性一一对应;
S24、定义数据类型属性值与搜索内容的匹配策略,所述匹配策略为模糊匹配、分词匹配、分词集降维匹配、分词间距匹配、短语匹配、前缀匹配或正则表达式匹配。
3.根据权利要求2所述的方法,其特征在于,搜索模型实现步骤S3包括:
S31、定义统一抽象搜索父类BaseQueryObject.class,该父类包含以下公有属性:pageSize表示查询返回结果分页显示时每页展示的数据条数,startIndex表示查询返回结果的起始数据的坐标,whereGroups表示复杂多条件组合查询,bucket表示分桶统计,sorts表示多级排序;
S32、定义搜索查询条件组合类WhereGroup.class,该组合类包含以下公有属性:groupName表示条件组名,gourpElements表示组元素,combineInnnerSeparator表示组内条件和条件之间的连接符,combineOuterSeparator表示该组和外部组之间的连接符;
S33、定义分桶聚合字段类BucketField.class,该分桶聚合字段类包含以下公有属性:bucketName表示分桶统计名,bucketField表示需要对数据模型中的某一属性进行分桶聚合操作,childBucketField表示桶和桶之间的相互嵌套关系,metrixs表示分桶后对桶内数据进行度量计算;
S34、定义度量字段类MetrixField.class,该度量字段类包含以下公有属性:type表示度量的类型,field表示需要度量的字段,name表示给该度量命名,gte表示大于等于的关系,lte表示小于等于的关系。
4.根据权利要求3所述的方法,其特征在于,所述搜索实例生成步骤S4包括:
S41、定义业务搜索对象,包括:a、创建业务搜索对象XXXQO.class并继承至BaseQueryObject.class父类;b、给业务搜索对象XXXQO.class赋予业务属性;c、定义复杂搜索字段类ComplexQueryField.class,用来接受用户前端查询请求的输入,存放字符串或字符串数组;d、定义复杂搜索范围字典类RangeQueryField.class;
S42、定义业务搜索对象的类型注解,所述类型注解用于将配置信息作为元数据描述在类的类型、属性和方法上;
S43、定义业务搜索对象的属性注解,所述属性注解包括:a、字符型注解,用来描述字符串及数值;b、范围注解,用来描述一个数值范围或者时间范围;然后定义注解属性中的匹配策略;
S44、通过注解描述业务搜索对象,将类型注解和属性注解通过注释的方式添加业务搜索对象的类型声明和属性声明上,用以描述业务搜索对象和数据仓库Elasticsearch之间的类型及属性间映射关系及匹配策略;
S45、创建业务搜索对象实例,通过用户在前端应用输入的查询条件作为初始值,用来初始化业务搜索对象,并创建业务搜索对象的实例。
5.根据权利要求4所述的方法,其特征在于,创建业务搜索对象实例的操作为:a、创建JSON对象用来描述业务搜索对象,b、搭建Springboot快速WEB服务框架并对外提供服务,通过RESTfulAPI设计规范及Http/Https协议提交JSON对象给RESTful接口服务,来初始化业务搜索对象,并创建业务搜索对象实例,c、业务搜索对象实例被自动创建,并且被JSON对象赋值。
6.根据权利要求5所述的方法,其特征在于,解析步骤S5包括:
S51、获取业务查询对象已配置完成的元数据;
S52、获取创建的业务搜索对象实例;
S53、通过java编写解析引擎,根据业务搜索对象实例和元数据解析成ES-DSL查询语句。
7.一种基于Elasticsearch实现海量数据复杂查询的装置,其特征在于,该装置包括:
数据库构建单元11,用于构建Elasticsearch集群作为分布式数据库用于存储海量数据;
搜索模型建立单元12,用于基于匹配模式、数据类型、数据类型属性及匹配策略构建搜索模型;
搜索模型实现单元13,使用Java语言实现搜索模型的父类、搜索查询条件组合类及分桶聚合字段类;
搜索实例生成单元14,用于接收用户输入的查询条件并生成搜索对象,然后基于所述搜索模型使用所述搜索对象生成搜索实例;
解析单元15,使用解析引擎对所述搜索实例进行解析并转换成ES-DSL查询语句;
查询单元16,用于将所述DSL查询语句提交至Elasticsearch集群进行查询返回查询结果至所述用户。
8.根据权利要求7所述的装置,其特征在于,所述搜索模型建立单元12是针对结构化数据建立搜索模型,其包括:
匹配模式确定单元21,确定搜索查询方式的匹配模式,所述匹配模式包括:a、全匹配,匹配内容应包含用户输入的所有完整关键词,关键词可以为一个或多个;b、部分匹配,匹配内容应包含用户输入的任意一个关键词;c、排他匹配,匹配内容应不包含用户输入的任意一个关键词,关键词可以为一个或多个;d、时间匹配,匹配数据的创建时间或修改时间应包含在用户输入的时间范围内;e、多条件组合匹配,匹配内容应包含用户输入的结构化数据中的多个属性条件组合;
数据类型模式确定单元22,确定需要搜索的结构化数据类型,定义结构化数据类型,数据的业务含义,数据结构与数据库中表模型的对应关系;
类型属性确定单元23,确定需要搜索的结构化数据类型属性,构建描述结构化数据类型中的属性集,所述数据类型属性与Elasticsearch中定义的数据类型的属性一一对应;
匹配策略确定单元24、定义数据类型属性值与搜索内容的匹配策略,所述匹配策略为模糊匹配、分词匹配、分词集降维匹配、分词间距匹配、短语匹配、前缀匹配或正则表达式匹配。
9.根据权利要求8所述的装置,其特征在于,搜索模型实现单元13包括:
搜索父类定义单元31,定义统一抽象搜索父类BaseQueryObject.class,该父类包含以下公有属性:pageSize表示查询返回结果分页显示时每页展示的数据条数,startIndex表示查询返回结果的起始数据的坐标,whereGroups表示复杂多条件组合查询,bucket表示分桶统计,sorts表示多级排序;
组合类定义单元32,定义搜索查询条件组合类WhereGroup.class,该组合类包含以下公有属性:groupName表示条件组名,gourpElements表示组元素,combineInnnerSeparator表示组内条件和条件之间的连接符,combineOuterSeparator表示该组和外部组之间的连接符;
分桶聚合字段类定义单元33,定义分桶聚合字段类BucketField.class,该分桶聚合字段类包含以下公有属性:bucketName表示分桶统计名,bucketField表示需要对数据模型中的某一属性进行分桶聚合操作,childBucketField表示桶和桶之间的相互嵌套关系,metrixs表示分桶后对桶内数据进行度量计算;
度量字段类定义单元34,定义度量字段类MetrixField.class,该度量字段类包含以下公有属性:type表示度量的类型,field表示需要度量的字段,name表示给该度量命名,gte表示大于等于的关系,lte表示小于等于的关系。
10.根据权利要求9所述的装置,其特征在于,所述搜索实例生成单元14包括:
搜索对象定义单元41,定义业务搜索对象,包括:a、创建业务搜索对象XXXQO.class并继承至BaseQueryObject.class父类;b、给业务搜索对象XXXQO.class赋予业务属性;c、定义复杂搜索字段类ComplexQueryField.class,用来接受用户前端查询请求的输入,存放字符串或字符串数组;d、定义复杂搜索范围字典类RangeQueryField.class;
类型注解定义单元42,定义业务搜索对象的类型注解,所述类型注解用于将配置信息作为元数据描述在类的类型、属性和装置上;
属性注解定义单元43,定义业务搜索对象的属性注解,所述属性注解包括:a、字符型注解,用来描述字符串及数值;b、范围注解,用来描述一个数值范围或者时间范围;然后定义注解属性中的匹配策略;
映射单元44,通过注解描述业务搜索对象,将类型注解和属性注解通过注释的方式添加业务搜索对象的类型声明和属性声明上,用以描述业务搜索对象和数据仓库Elasticsearch之间的类型及属性间映射关系及匹配策略;
实例生成单元45,创建业务搜索对象实例,通过用户在前端应用输入的查询条件作为初始值,用来初始化业务搜索对象,并创建业务搜索对象的实例。
11.根据权利要求10所述的装置,其特征在于,创建业务搜索对象实例的操作为:a、创建JSON对象用来描述业务搜索对象,b、搭建Springboot快速WEB服务框架并对外提供服务,通过RESTful API设计规范及Http/Https协议提交JSON对象给RESTful接口服务,来初始化业务搜索对象,并创建业务搜索对象实例,c、业务搜索对象实例被自动创建,并且被JSON对象赋值。
12.根据权利要求11所述的装置,其特征在于,解析单元15包括:
元数据获取单元51,获取业务查询对象已配置完成的元数据;
实例获取单元52,获取创建的业务搜索对象实例;
解析单元53,通过java编写解析引擎,根据业务搜索对象实例和元数据解析成ES-DSL查询语句。
13.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序代码,当所述计算机程序代码被计算机执行时执行权利要求1-6之任一的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910792472.8A CN110543517B (zh) | 2019-08-26 | 2019-08-26 | 一种基于Elasticsearch实现海量数据复杂查询方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910792472.8A CN110543517B (zh) | 2019-08-26 | 2019-08-26 | 一种基于Elasticsearch实现海量数据复杂查询方法、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110543517A true CN110543517A (zh) | 2019-12-06 |
CN110543517B CN110543517B (zh) | 2022-05-10 |
Family
ID=68712117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910792472.8A Active CN110543517B (zh) | 2019-08-26 | 2019-08-26 | 一种基于Elasticsearch实现海量数据复杂查询方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110543517B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143400A (zh) * | 2019-12-26 | 2020-05-12 | 长城计算机软件与系统有限公司 | 一种全栈式检索方法、系统、引擎及电子设备 |
CN111339147A (zh) * | 2020-03-06 | 2020-06-26 | 杭州依图医疗技术有限公司 | 医学数据的处理方法、降维查询方法及存储介质 |
CN111400362A (zh) * | 2020-02-19 | 2020-07-10 | 北京值得买科技股份有限公司 | 一种基于Elasticsearch的分布式搜索系统搭建方法以及装置 |
CN112100197A (zh) * | 2020-07-31 | 2020-12-18 | 紫光云(南京)数字技术有限公司 | 基于Elasticsearch的准实时日志数据分析与统计方法 |
CN112269807A (zh) * | 2020-11-09 | 2021-01-26 | 浪潮软件股份有限公司 | 基于Elasticsearch技术的可配置信用档案检索方法及系统 |
CN112685446A (zh) * | 2020-12-31 | 2021-04-20 | 上海梦鱼信息科技有限公司 | 通过Elasticsearch数据库的复杂SQL查询方法、装置、处理器及存储介质 |
CN112749750A (zh) * | 2021-01-15 | 2021-05-04 | 苏州浪潮智能科技有限公司 | 一种基于k均值聚类算法的搜索引擎聚合分析方法及系统 |
CN112988863A (zh) * | 2021-02-09 | 2021-06-18 | 苏州中科蓝迪软件技术有限公司 | 一种基于Elasticsearch的异构多数据源的高效搜索引擎方法 |
CN113111641A (zh) * | 2021-04-20 | 2021-07-13 | 上海渠杰信息科技有限公司 | 一种基于全文搜索引擎的数据操作方法及设备 |
CN113536040A (zh) * | 2020-04-20 | 2021-10-22 | 北京沃东天骏信息技术有限公司 | 信息查询方法、装置以及存储介质 |
CN115033312A (zh) * | 2022-08-09 | 2022-09-09 | 中化现代农业有限公司 | ElasticSearch数据操作方法及装置 |
CN115563127A (zh) * | 2022-11-10 | 2023-01-03 | 神州医疗科技股份有限公司 | 基于大数据医疗通用检索索引构建的查询方法及系统 |
CN115618087A (zh) * | 2022-12-06 | 2023-01-17 | 墨责(北京)科技传播有限公司 | 对多语言翻译语料进行存储、搜索和显示方法及装置 |
CN116127976A (zh) * | 2023-01-09 | 2023-05-16 | 中国司法大数据研究院有限公司 | 公司名称的匹配方法、装置及电子设备 |
CN116166631A (zh) * | 2023-04-25 | 2023-05-26 | 明阳时创(北京)科技有限公司 | Dns日志数据定制化收集与可视化方法、系统、介质及设备 |
CN111143400B (zh) * | 2019-12-26 | 2024-05-14 | 新长城科技有限公司 | 一种全栈式检索方法、系统、引擎及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080016049A1 (en) * | 2006-07-12 | 2008-01-17 | Dettinger Richard D | Natural language support for query results |
CN106202455A (zh) * | 2016-07-14 | 2016-12-07 | 星云纵横(北京)大数据信息技术有限公司 | 一种实现多行业数据切换查询的数据查询系统及方法 |
CN106528797A (zh) * | 2016-11-10 | 2017-03-22 | 上海轻维软件有限公司 | 基于Elasticsearch的DSL查询方法 |
CN106682073A (zh) * | 2016-11-14 | 2017-05-17 | 上海轻维软件有限公司 | 基于ElasticSearch的HBase模糊检索系统 |
CN107133267A (zh) * | 2017-04-01 | 2017-09-05 | 北京京东尚科信息技术有限公司 | 查询elasticsearch集群的方法、装置、电子设备和可读存储介质 |
CN107368578A (zh) * | 2017-07-20 | 2017-11-21 | 山东合天智汇信息技术有限公司 | 一种快速生成es查询语句的方法及系统 |
CN107958080A (zh) * | 2017-12-14 | 2018-04-24 | 上海特易信息科技有限公司 | 一种基于ElasticSearch的大数据报表处理方法 |
CN109101565A (zh) * | 2018-07-16 | 2018-12-28 | 浪潮软件集团有限公司 | 一种基于图数据库的语义搜索实现方法 |
CN109616212A (zh) * | 2018-11-09 | 2019-04-12 | 金色熊猫有限公司 | 疾病数据处理方法、装置、电子设备及可读介质 |
CN110119442A (zh) * | 2019-05-17 | 2019-08-13 | 北京思维造物信息科技股份有限公司 | 一种动态搜索方法、装置、设备及介质 |
-
2019
- 2019-08-26 CN CN201910792472.8A patent/CN110543517B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080016049A1 (en) * | 2006-07-12 | 2008-01-17 | Dettinger Richard D | Natural language support for query results |
CN106202455A (zh) * | 2016-07-14 | 2016-12-07 | 星云纵横(北京)大数据信息技术有限公司 | 一种实现多行业数据切换查询的数据查询系统及方法 |
CN106528797A (zh) * | 2016-11-10 | 2017-03-22 | 上海轻维软件有限公司 | 基于Elasticsearch的DSL查询方法 |
CN106682073A (zh) * | 2016-11-14 | 2017-05-17 | 上海轻维软件有限公司 | 基于ElasticSearch的HBase模糊检索系统 |
CN107133267A (zh) * | 2017-04-01 | 2017-09-05 | 北京京东尚科信息技术有限公司 | 查询elasticsearch集群的方法、装置、电子设备和可读存储介质 |
CN107368578A (zh) * | 2017-07-20 | 2017-11-21 | 山东合天智汇信息技术有限公司 | 一种快速生成es查询语句的方法及系统 |
CN107958080A (zh) * | 2017-12-14 | 2018-04-24 | 上海特易信息科技有限公司 | 一种基于ElasticSearch的大数据报表处理方法 |
CN109101565A (zh) * | 2018-07-16 | 2018-12-28 | 浪潮软件集团有限公司 | 一种基于图数据库的语义搜索实现方法 |
CN109616212A (zh) * | 2018-11-09 | 2019-04-12 | 金色熊猫有限公司 | 疾病数据处理方法、装置、电子设备及可读介质 |
CN110119442A (zh) * | 2019-05-17 | 2019-08-13 | 北京思维造物信息科技股份有限公司 | 一种动态搜索方法、装置、设备及介质 |
Non-Patent Citations (3)
Title |
---|
DIVYA等: "elasticsearch an advanced and quick search technique to handle voluminous data", 《COMPUSOFT》 * |
梁文楷: "基于Elasticsearch全文检索系统的实现", 《电脑编程技巧与维护》 * |
梁文楷等: "就业大数据服务平台设计", 《中国科技信息》 * |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143400B (zh) * | 2019-12-26 | 2024-05-14 | 新长城科技有限公司 | 一种全栈式检索方法、系统、引擎及电子设备 |
CN111143400A (zh) * | 2019-12-26 | 2020-05-12 | 长城计算机软件与系统有限公司 | 一种全栈式检索方法、系统、引擎及电子设备 |
CN111400362A (zh) * | 2020-02-19 | 2020-07-10 | 北京值得买科技股份有限公司 | 一种基于Elasticsearch的分布式搜索系统搭建方法以及装置 |
CN111339147A (zh) * | 2020-03-06 | 2020-06-26 | 杭州依图医疗技术有限公司 | 医学数据的处理方法、降维查询方法及存储介质 |
CN113536040A (zh) * | 2020-04-20 | 2021-10-22 | 北京沃东天骏信息技术有限公司 | 信息查询方法、装置以及存储介质 |
CN113536040B (zh) * | 2020-04-20 | 2024-05-17 | 北京沃东天骏信息技术有限公司 | 信息查询方法、装置以及存储介质 |
CN112100197A (zh) * | 2020-07-31 | 2020-12-18 | 紫光云(南京)数字技术有限公司 | 基于Elasticsearch的准实时日志数据分析与统计方法 |
CN112100197B (zh) * | 2020-07-31 | 2022-10-28 | 紫光云(南京)数字技术有限公司 | 基于Elasticsearch的准实时日志数据分析与统计方法 |
CN112269807A (zh) * | 2020-11-09 | 2021-01-26 | 浪潮软件股份有限公司 | 基于Elasticsearch技术的可配置信用档案检索方法及系统 |
CN112685446A (zh) * | 2020-12-31 | 2021-04-20 | 上海梦鱼信息科技有限公司 | 通过Elasticsearch数据库的复杂SQL查询方法、装置、处理器及存储介质 |
CN112685446B (zh) * | 2020-12-31 | 2023-07-25 | 上海梦鱼信息科技有限公司 | 通过Elasticsearch数据库的复杂SQL查询方法、装置、处理器及存储介质 |
CN112749750A (zh) * | 2021-01-15 | 2021-05-04 | 苏州浪潮智能科技有限公司 | 一种基于k均值聚类算法的搜索引擎聚合分析方法及系统 |
CN112988863A (zh) * | 2021-02-09 | 2021-06-18 | 苏州中科蓝迪软件技术有限公司 | 一种基于Elasticsearch的异构多数据源的高效搜索引擎方法 |
CN113111641A (zh) * | 2021-04-20 | 2021-07-13 | 上海渠杰信息科技有限公司 | 一种基于全文搜索引擎的数据操作方法及设备 |
CN115033312A (zh) * | 2022-08-09 | 2022-09-09 | 中化现代农业有限公司 | ElasticSearch数据操作方法及装置 |
CN115033312B (zh) * | 2022-08-09 | 2022-12-27 | 中化现代农业有限公司 | ElasticSearch数据操作方法及装置 |
CN115563127B (zh) * | 2022-11-10 | 2023-02-24 | 神州医疗科技股份有限公司 | 基于大数据医疗通用检索索引构建的查询方法及系统 |
CN115563127A (zh) * | 2022-11-10 | 2023-01-03 | 神州医疗科技股份有限公司 | 基于大数据医疗通用检索索引构建的查询方法及系统 |
CN115618087A (zh) * | 2022-12-06 | 2023-01-17 | 墨责(北京)科技传播有限公司 | 对多语言翻译语料进行存储、搜索和显示方法及装置 |
CN116127976A (zh) * | 2023-01-09 | 2023-05-16 | 中国司法大数据研究院有限公司 | 公司名称的匹配方法、装置及电子设备 |
CN116127976B (zh) * | 2023-01-09 | 2023-12-05 | 中国司法大数据研究院有限公司 | 公司名称的匹配方法、装置及电子设备 |
CN116166631A (zh) * | 2023-04-25 | 2023-05-26 | 明阳时创(北京)科技有限公司 | Dns日志数据定制化收集与可视化方法、系统、介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110543517B (zh) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110543517B (zh) | 一种基于Elasticsearch实现海量数据复杂查询方法、装置及介质 | |
US11714841B2 (en) | Systems and methods for processing a natural language query in data tables | |
US20190018839A1 (en) | Knowledge map-based question-answer method, device, and storage medium | |
US8099382B2 (en) | Method and system for mapping multi-dimensional model to data warehouse schema | |
CN105335403B (zh) | 数据库访问方法及装置、数据库系统 | |
US8185519B2 (en) | Techniques for exact cardinality query optimization | |
US9672490B2 (en) | Procurement system | |
CN105630881B (zh) | 一种rdf的数据存储方法和查询方法 | |
CN104636478A (zh) | 信息查询方法和设备 | |
US9779135B2 (en) | Semantic related objects | |
CN104137095A (zh) | 用于演进分析的系统 | |
US20180357278A1 (en) | Processing aggregate queries in a graph database | |
CN108960672B (zh) | 限额限次的风控方法、装置及计算机可读存储介质 | |
Niinimäki et al. | An ETL process for OLAP using RDF/OWL ontologies | |
CN114528312A (zh) | 一种结构化查询语言语句的生成方法和装置 | |
CN114090760B (zh) | 表格问答的数据处理方法、电子设备及可读存储介质 | |
Baker et al. | A new approach to use big data tools to substitute unstructured data warehouse | |
CN101901277A (zh) | 一种基于用户情景的动态本体建模方法及系统 | |
US20230126509A1 (en) | Database management system and method for graph view selection for a relational-graph database | |
US9104755B2 (en) | Ontology enhancement method and system | |
CN114138821A (zh) | 一种数据库查询方法、系统和电子设备 | |
Li et al. | On Leveraging Large Language Models for Enhancing Entity Resolution | |
Nabli et al. | Towards an automatic data mart design | |
CN111737425A (zh) | 一种应答方法、装置、服务器及存储介质 | |
Mok | Utilizing nested normal form to design redundancy free JSON schemas |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |