CN109325047B - 一种交互式ElasticSearch深度分页查询方法和设备 - Google Patents
一种交互式ElasticSearch深度分页查询方法和设备 Download PDFInfo
- Publication number
- CN109325047B CN109325047B CN201811395531.XA CN201811395531A CN109325047B CN 109325047 B CN109325047 B CN 109325047B CN 201811395531 A CN201811395531 A CN 201811395531A CN 109325047 B CN109325047 B CN 109325047B
- Authority
- CN
- China
- Prior art keywords
- query
- field
- user
- paging
- elasticsearch
- 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.)
- Active
Links
Images
Landscapes
- User Interface Of Digital Computer (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种交互式ElasticSearch深度分页查询的方法,其特征在于包括:接收客户端发送的查询请求;判断所述查询请求是否为首次查询请求和小于所述分页阈值,如果均为否,则进行交互式查询方式,通过聚合计算查询字段以外的可穷举分类的字段的数据,并根据用户选择的细化字段组合查询条件发送给ElasticSearch服务器;封装由ElasticSearch服务器返回的结果数据并返回给客户端。本发明通过可实时动态的推荐利用交互式查询机制,能够实时动态的推荐查询条件与用户进行交互,给用户提供选择,使得查询更加友好和高效。
Description
技术领域
本发明涉及数据处理领域,具体涉及一种交互式ElasticSearch深度分页查询的方法和电子设备。
背景技术
查询是搜索服务器最为常见的操作之一。其中,ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎;ElasticSearch是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在ElasticSearch中,你可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。
但是ElasticSearch作为高性能的内存数据库,由于其在分布式***中,结果排序的代价和花费随着分页的深入(深度分页)而成倍增长,因此,如何根据先前的查询结果计算分析进一步的查询操作,特别是深度分页查询,是ElaticSeach数据库最值得关注的技术问题。
发明内容
针对上述技术问题,特别是针对数据库查询的结果进行针对性计算时,缺乏相应的查询机制,因此,本发明在原有查询的基础上增加交互式操作以形成交互式查询,通过交互式查询,可以通过准确完备的检索条件更好地帮助用户从数据库获取最需要的信息。具体的,本发明通过再次根据查询结果,聚合计算分析推荐给用户可根据非查询条件以外的可穷举分类的字段,进行聚合将该字段的所有类型聚合并转化成用户可理解的描述返回给页面,用户选择需要细化的分类,组合查询条件发送给Web服务器进行数据查询,利用增加查询细化条件,进一步细化查询缩小匹配文档数目减少,从而有效解决了在ElasticSearch深度分页查询中代价过高的问题。
为实现上述目的,本发明提出了基于交互式ElasticSearch深度分页查询的方法和电子设备。具体的,采用以下技术方案:
第一方面,本发明提供了一种交互式ElasticSearch深度分页查询的方法,包括下述步骤:
步骤1:接收客户端发送的查询请求;
步骤2:判断所述查询请求是否为首次查询请求,如果是则转步骤4,否则转步骤3;
步骤3:判断所述查询请求的分页参数与分页阈值的关系,如果小于所述分页阈值,则转步骤4,否则转步骤5;
步骤4:向ElasticSearch发送所述查询请求,转步骤6;
步骤5:聚合计算查询字段以外的可穷举分类的字段的数据,并根据用户选择的细化字段组合查询条件发送给ElasticSearch服务器;
步骤6:封装由ElasticSearch服务器返回的结果数据;
步骤7:将所述结果数据返回到客户端。
在上述技术方案的技术上,进一步的,所述步骤5还包括下述步骤:
步骤5.1:聚合计算查询字段以外的字段的数据;
步骤5.2:提示用户是否需要细化查询;
步骤5.3:当用户需要细化查询,将聚合计算结果的细化字段推送展示到客户端;
步骤5.4:用户选择相应的细化字段;
步骤5.5:根据所述细化字段返回字段对应的所有具体的细化分类,进行聚合将该字段的所有类型聚合并转化成用户可理解的描述返回给页面;
步骤5.6:用户选择相应的细化分类;
步骤5.7:根据用户选择需要细化的分类,组合查询条件发送给ElasticSearch服务器。
在上述技术方案的技术上,进一步的,所述查询字段以外的字段为可穷举分类的字段。
在上述技术方案的技术上,进一步的,所述步骤5.1中的聚合计算还包括下述步骤:
步骤5.1.1:分析所述查询字段以外的字段的关系;
步骤5.1.2:将具有关联关系的字段的数据进行聚合。
在上述技术方案的技术上,进一步的,所述客户端为浏览器。
在上述技术方案的技术上,进一步的,所述客户端为具有图形化界面的客户端。
在上述技术方案的技术上,进一步的,所述分页参数按照如下方式计算:
分页参数=查询的起点文档的位置+查询的文档条数。
在上述技术方案的技术上,进一步的,所述分页阈值为10000。
另一方面,本发明还提供了一种交互式ElasticSearch深度分页查询的电子设备,包括:
处理器和存储器,所述存储器具有存储有程序代码的介质,当所述处理器读取所述介质存储的程序代码时,所述电子设备能够执行上述方法。
与现有技术方案相比,本发明实施方式的技术方案至少具有以下有益的技术效果:
(1)优化了Elasticsearch深度分页查询问题,弱化了深度分页瓶颈,优化查询从而解决ElasticSearch通过from size组合来进行分页查询。通过交互式的提示动态的提供细化的筛选条件供用户选择,尽可能的将查询结果维持在设置的最大值范围以内,避免了因查询超过设置的最大值而报错的问题,优化***功能,优化查询。
(2)使用了交互式查询机制,在以基础查询条件查询所得到的查询结果为前提下,再根据非基础查询条件以外的可以穷举分类的字段进行聚合计算分析,并将聚合分析的字段的所有类型聚合并转化成用户可理解的描述,然后将其转化为细化分类列表,以返回页面的方式实时灵活动态的推荐给用户,用户根据分析推荐的结果选择需要细化的分类,组合查询条件发送给Web服务器进行数据查询。
(3)增加查询细化条件,减小查询压力,进一步细化查询缩小匹配文档数目减少将查询结果维持在设置的最大值范围内。
本发明提高了整体的性能的同时,在数据量比较大的情况下使用户可以更加动态灵活的以交互式的方式引导用户查询所需要的全部数据。根据基础查询条件以外的可以穷举分类的字段来准确查询信息。不仅弱化了深度分页带来的瓶颈,而且使得查询更加友好和高效。
附图说明
图1是本发明提出的交互式ElasticSearch深度分页查询方法的一个更佳实施方式的结构及流程示意图;
图2是本发明提出的交互式ElasticSearch深度分页查询方法的一个具体应用场景的示意图;
图3是本发明提出的交互式ElasticSearch深度分页查询的电子设备的一个更佳实施方式的结构。
下面对本发明进一步详细说明。但下述的实例仅仅是本发明的简易例子,并不代表或限制本发明的权利保护范围,本发明的保护范围以权利要求书为准。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
为更好地说明本发明,便于理解本发明的技术方案,本发明的典型但非限制性的实施方式如下,这里需要特别说明的是本发明说明书所列的实施方式仅是为了说明问题方便而给出的示例性实施方法,其不得理解为是本发明唯一正确的实施方式,更不得理解为是对本发明保护范围的限制性说明。
参见图1,为本发明的提出的交互式ElasticSearch深度分页查询方法的一个较佳实施方式,所述方法基于ElasticSearch搜索服务器。当进行分页查询时,其包括如下步骤:
S101、接收客户端发送的查询请求;
S102、判断上述查询请求是否是第一次发送查询请求,若是,则转S104;若否,判断分页参数是否小于分页阈值,所述分页阈值可为10000,所述分页参数通过计算起点值from和规模size的和得到,其中,所述from表示从第几行开始,所述size表示查询多少条文档;如果小于所述阈值,则转S104;如果大于所述阈值,则转S105;
S104:发送查询请求到ElasticSearch,转S112;
S105:聚合计算查询字段以外的可穷举分类的字段的数据;
S106:提示用户是否需要细化查询;
S107:当用户需要细化查询,将聚合计算结果的细化字段推送展示到客户端,所述客户端可为浏览器或任何具有图形化界面的客户端,;
S108:用户选择相应的细化字段;
S109:根据所述细化字段返回字段对应的所有具体的细化分类,进行聚合将该字段的所有类型聚合并转化成用户可理解的描述返回给页面;
S110:用户选择相应的细化分类;
S111:根据用户选择需要细化的分类,组合查询条件发送给ElasticSearch服务器;
S112:封装由ElasticSearch服务器返回的结果数据;
S113:将所述结果数据返回到客户端,所述客户端可为浏览器或任何具有图形化界面的客户端。
其中,步骤S105-S111实现了用户与ElasticSearch的交互式查询机制,可实时动态的推荐查询条件与用户进行交互,并允许用户提供选择,使得查询更加友好和高效。同时,通过聚合计算出除基础查询条件以外的细化查询条件供用户选择,使用户可以灵活地根据推荐准确的在大量数据中的得到有效的数据。不仅弱化了深度分页带来的瓶颈,而且使得用户得到的信息更加准确,节约了大量的时间成本以及人力成本。
作为一个更佳实施方式,步骤S105中的聚合计算还包括下述步骤:
(1)分析所述查询字段以外的字段的关系;
(2)将具有关联关系的字段的数据进行聚合。
为了便于理解,以下用一简单实例来说明,如数据库中的“年龄”和“出生年月”字段,这两个字段均属于可穷举分类的字段,且这两个字段的数据内容具有数学运算关系(即:通过出生年月可推算年龄,反之亦然),则它们属于关联关系,则将这两个字段的数据进行聚合成一个字段,则可减少推送给用户选择的细化字段。有效降低了用户选择细化字段的复杂度。又如某单位,工种的类型与性别相关(某些工种仅适合男性员工),则它们也存在某种关联关系,也可采取聚合计算的手段以降低用户细化选择的复杂度。值得提醒的是,上述简单实例仅仅是为了帮助理解本发明的技术方案,不应作为保护范围的限制。本领域技术人员能够理解,通过本实施方式的描述,可以推广到更多的具体实施方式,这些实施方式都应属于本发明的保护范围。
参见图2,为本发明的一个具体应用的实施场景,其中,客户端(浏览器或任何具有图形化界面的客户端)发送外部查询请求到Web服务器,由ElasticSearch负责提供相应的数据给Web服务器查询,客户端与Web服务器通过交互式查询从ElasticSearch中获取并查看更多数据。此外,客户端还负责为用户展示数据,特别是展示穷举分类字段和细化查询列表供用户选择所需要的细化分类;由Web服务器判断分页参数与分页阈值的关系,穷举分类字段,聚合字段类型并将它们转换为用户可理解的描述形式,和向ElasticSearch发送请求,以查询数据。
作为本发明的第二个方面,还提供一种电子设备,参见图3,包括:处理器1120和存储器1140,所述存储器1140具有存储有程序代码的介质(计算机可读存储介质),当所述处理器读取所述介质存储的程序代码时,通过输入单元1130和输出单元1150的协助,使得所述电子设备能够执行上述方法步骤。
对于方法实施,本发明提出的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,本发明提出的各种实施方式可以通过使用特定用途集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、处理器、微处理器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,本发明提出的各种实施方式可以在图所示的处理器1120中实施。对于软件实施,本发明提出的各种实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器1140中并且由处理器1120执行。
申请人声明,本发明通过上述实施方式来说明本发明的详细结构特征,但本发明并不局限于上述详细结构特征,即不意味着本发明必须依赖上述详细结构特征才能实施。所属技术领域的技术人员应该明了,对本发明的任何改进,对本发明所选用部件的等效替换以及辅助部件的增加、具体方式的选择等,均落在本发明的保护范围和公开范围之内。
以上详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
Claims (7)
1.一种交互式ElasticSearch深度分页查询的方法,其特征在于包括下述步骤:
步骤1:接收客户端发送的查询请求;
步骤2:判断所述查询请求是否为首次查询请求,如果是则转步骤4,否则转步骤3;
步骤3:判断所述查询请求的分页参数与分页阈值的关系,如果小于所述分页阈值,则转步骤4,否则转步骤5;所述分页参数按照如下方式计算:分页参数=查询的起点文档的位置+查询的文档条数;
步骤4:向ElasticSearch发送所述查询请求,转步骤6;
步骤5:聚合计算查询字段以外的可穷举分类的字段的数据,并根据用户选择的细化字段组合查询条件发送给ElasticSearch服务器;
步骤6:封装由ElasticSearch服务器返回的结果数据;
步骤7:将所述结果数据返回到客户端;
所述步骤5还包括下述步骤:
步骤5.1:聚合计算查询字段以外的字段的数据;
步骤5.2:提示用户是否需要细化查询;
步骤5.3:当用户需要细化查询,将聚合计算结果的细化字段推送展示到客户端;
步骤5.4:用户选择相应的细化字段;
步骤5.5:根据所述细化字段返回字段对应的所有具体的细化分类,进行聚合将该字段的所有类型聚合并转化成用户可理解的描述返回给页面;
步骤5.6:用户选择相应的细化分类;
步骤5.7:根据用户选择需要细化的分类,组合查询条件发送给ElasticSearch服务器。
2.如权利要求1所述的方法,其特征在于所述查询字段以外的字段为可穷举分类的字段。
3.如权利要求1所述的方法,其特征在于所述步骤5.1中的聚合计算还包括下述步骤:
步骤5.1.1:分析所述查询字段以外的字段的关系;
步骤5.1.2:将具有关联关系的字段的数据进行聚合。
4.如权利要求3所述的方法,其特征在于所述客户端为浏览器。
5.如权利要求3所述的方法,其特征在于所述客户端为具有图形化界面的客户端。
6.如权利要求4所述的方法,其特征在于所述分页阈值为10000。
7.一种交互式ElasticSearch深度分页查询的电子设备,其特征在于包括:
处理器和存储器,所述存储器具有存储有程序代码的介质,当所述处理器读取所述介质存储的程序代码时,所述电子设备能够执行权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811395531.XA CN109325047B (zh) | 2018-11-22 | 2018-11-22 | 一种交互式ElasticSearch深度分页查询方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811395531.XA CN109325047B (zh) | 2018-11-22 | 2018-11-22 | 一种交互式ElasticSearch深度分页查询方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109325047A CN109325047A (zh) | 2019-02-12 |
CN109325047B true CN109325047B (zh) | 2021-04-16 |
Family
ID=65258169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811395531.XA Active CN109325047B (zh) | 2018-11-22 | 2018-11-22 | 一种交互式ElasticSearch深度分页查询方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109325047B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083627B (zh) * | 2019-04-28 | 2021-08-24 | 江苏满运软件科技有限公司 | 数据处理方法、***、计算机设备和存储介质 |
CN110232044B (zh) * | 2019-06-17 | 2023-03-28 | 浪潮通用软件有限公司 | 一种大数据汇总调度服务的实现***及方法 |
CN111680063B (zh) * | 2020-05-25 | 2023-08-18 | 泰康保险集团股份有限公司 | Elasticsearch分页查询数据的方法及装置 |
CN112364280A (zh) * | 2020-10-27 | 2021-02-12 | 深圳开源互联网安全技术有限公司 | 分页查询动态适配方法及***、设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8090698B2 (en) * | 2004-05-07 | 2012-01-03 | Ebay Inc. | Method and system to facilitate a search of an information resource |
WO2009036372A2 (en) * | 2007-09-14 | 2009-03-19 | Google Inc. | Suggesting alterntive queries in query results |
US20120179705A1 (en) * | 2011-01-11 | 2012-07-12 | Microsoft Corporation | Query reformulation in association with a search box |
CN102419778B (zh) * | 2012-01-09 | 2013-03-20 | 中国科学院软件研究所 | 一种挖掘查询语句子话题并聚类的信息搜索方法 |
CN106528797A (zh) * | 2016-11-10 | 2017-03-22 | 上海轻维软件有限公司 | 基于Elasticsearch的DSL查询方法 |
CN108509524A (zh) * | 2018-03-12 | 2018-09-07 | 上海哔哩哔哩科技有限公司 | 数据处理的方法、服务器及数据处理的*** |
-
2018
- 2018-11-22 CN CN201811395531.XA patent/CN109325047B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109325047A (zh) | 2019-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109325047B (zh) | 一种交互式ElasticSearch深度分页查询方法和设备 | |
US7974974B2 (en) | Techniques to perform relative ranking for search results | |
US6594654B1 (en) | Systems and methods for continuously accumulating research information via a computer network | |
Venetis et al. | On the selection of tags for tag clouds | |
US8078604B2 (en) | Identifying executable scenarios in response to search queries | |
CN102567461B (zh) | 用于大文档索引的匹配漏斗 | |
CN104933100A (zh) | 关键词推荐方法和装置 | |
Im et al. | Linked tag: image annotation using semantic relationships between image tags | |
US10796101B2 (en) | Optimizations of search engines for merging search results | |
CN112257419A (zh) | 一种基于词频和语义计算专利文献相似度的智能检索方法、装置、电子设备及其存储介质 | |
EP3016003A1 (en) | Search method, apparatus and device and non-volatile computer storage medium | |
CN101661490B (zh) | 搜索引擎、其客户端及搜索网页的方法 | |
CN105989066A (zh) | 一种信息处理方法和装置 | |
CN115630144A (zh) | 一种文档搜索方法、装置及相关设备 | |
US20200341990A1 (en) | Systems and methods for ranking electronic documents based on query token densities | |
Urbano et al. | Minimal test collections for low-cost evaluation of audio music similarity and retrieval systems | |
CN117744652A (zh) | 一种基于大语言模型的领域特征词挖掘方法和装置 | |
US9031929B1 (en) | Site quality score | |
US20080313166A1 (en) | Research progression summary | |
Ehsan et al. | Qurve: Query refinement for view recommendation in visual data exploration | |
KR20150068256A (ko) | 웹 브라우저의 히스토리 관리 방법 및 장치 | |
CN110222156B (zh) | 发现实体的方法和装置、电子设备、计算机可读介质 | |
CN105159899B (zh) | 一种搜索的方法和装置 | |
CN113360517A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US11556550B2 (en) | Methods and systems for no fail searching |
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 |