CN113076456A - 一种数据搜索处理方法、装置、电子设备和存储介质 - Google Patents
一种数据搜索处理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113076456A CN113076456A CN202110321418.2A CN202110321418A CN113076456A CN 113076456 A CN113076456 A CN 113076456A CN 202110321418 A CN202110321418 A CN 202110321418A CN 113076456 A CN113076456 A CN 113076456A
- Authority
- CN
- China
- Prior art keywords
- data
- index
- search
- content
- field
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 19
- 238000012163 sequencing technique Methods 0.000 claims description 16
- 230000009471 action Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 7
- 238000000034 method Methods 0.000 abstract description 38
- 230000008569 process Effects 0.000 abstract description 24
- 238000012217 deletion Methods 0.000 abstract description 15
- 230000037430 deletion Effects 0.000 abstract description 15
- 230000000694 effects Effects 0.000 abstract description 2
- 230000003068 static effect Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 12
- 230000011218 segmentation Effects 0.000 description 10
- 230000000153 supplemental effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000001502 supplementing effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据搜索处理方法、装置、电子设备和存储介质,基于表示数据内容的内容信息和/或状态信息的数据字段,对数据字段与数据内容创建不同索引方式的索引。在创建索引时考虑到数据字段所表示信息的更新频次,从而能够基于更新频次选择合适的索引方式,使得更新频次较高的信息更新时无需对数据内容相关的所有信息进行伪删除,从而降低伪删除数据的数据量,有助于提高搜索性能。还可以基于数据字段在数据搜索中的作用创建不同索引方式的索引,使得搜索过程不需要每次均通过扫描原文档获取需要的信息,提高搜索效率。
Description
技术领域
本发明涉及搜索引擎技术领域,尤其涉及一种数据搜索处理方法、装置、电子设备和存储介质。
背景技术
现有的数据搜索在创建索引时,通常会基于通过文档提取的分词term和文档ID创建倒排索引,并基于文档ID和文档中包含的内容创建正排索引,例如,现有的基于lucene搜索内核的开源的分布式搜索引擎是基于这一原理建立索引的。其中,文档中不仅包含数据内容,还包含数据内容的状态信息,无论是数据内容还是状态信息发生更新,均需要对原文档进行伪删除,创建新的文档。这样随着时间的推移,文档冗余会增多,索引大小也会变大,极端情况下,冗余能占到整个索引的30%-50%,从而影响搜索性能,搜索耗时增加。
另一方面,在数据搜索的过程中,会先根据搜索字段与倒排索引中的term进行匹配,找到被召回的文档ID,然后通过扫描文档ID对应的文档得到用于进行排序的相关信息(例如,状态信息),从而实现对文档的排序。这一过程需要通过扫描文档获取排序的相关信息,耗时较长,效率较低。
可见,现有技术基于分词和文档创建索引的方式,会随时间推移增加伪删除数据,影响搜索性能,且现有技术中基于所创建的索引进行搜索的过程也不利于提高搜索效率。
发明内容
本发明提供一种数据搜索处理方法、装置、电子设备和存储介质,用以解决现有技术基于分词和文档创建索引的方式,会随时间推移增加伪删除数据,影响搜索性能,且现有技术中基于所创建的索引进行搜索的过程也不利于提高搜索效率的缺陷,实现了降低伪删除数据的数据量,提高搜索效率,优化搜索性能。
本发明提供一种数据搜索处理方法,包括:
获取对数据内容以不同索引方式创建的索引;其中,所述索引方式根据数据字段所表示信息的更新频次和/或所述数据字段在数据搜索中的作用确定;所述数据字段用于表示所述数据内容的内容信息和/或状态信息;
根据所述索引进行数据搜索。
根据本发明提供一种数据搜索处理方法,在上述基础上,在获取对数据内容以不同索引方式创建的索引之前,还包括:
若所述数据字段所表示信息的更新频次大于预设更新频次,则创建正排索引;其中,所述正排索引为通过所述数据内容搜索到所述数据字段的索引;
若所述数据字段所表示信息的更新频次小于或等于所述预设更新频次,则创建倒排索引,其中,所述倒排索引为通过所述数据字段搜索到所述数据内容的索引。
根据本发明提供一种数据搜索处理方法,在上述基础上,在获取对数据内容以不同索引方式创建的索引之前,还包括:
若所述数据字段在数据搜索中的作用为确定与搜索字段关联的召回数据内容,则创建倒排索引,其中,所述倒排索引为通过所述数据字段搜索到所述数据内容的索引;
若所述数据字段在数据搜索中的作用不是确定所述召回数据内容,则创建正排索引;其中,所述正排索引为通过所述数据内容搜索到所述数据字段的索引。
根据本发明提供一种数据搜索处理方法,在上述基础上,所述若所述数据字段在数据搜索中的作用不是确定所述召回数据内容,则创建正排索引,包括:
若所述数据字段在数据搜索中的作用为对所述召回数据内容进行排序,则将创建的正排索引存储在缓存中;
若所述数据字段在数据搜索中的作用为读取所述数据内容,则将创建的正排索引存储在磁盘中。
根据本发明提供一种数据搜索处理方法,在上述基础上,所述根据所述索引进行数据搜索,包括:
根据搜索字段和创建的倒排索引,确定与所述搜索字段关联的召回数据内容;其中,所述倒排索引为通过所述数据字段搜索到所述数据内容的索引;
和/或,根据所述召回数据内容和创建的正排索引,确定响应于所述搜索请求的搜索结果;其中,所述正排索引为通过所述数据内容搜索到所述数据字段的索引。
根据本发明提供一种数据搜索处理方法,在上述基础上,所述根据所述召回数据内容和创建的正排索引,确定响应于所述搜索请求的搜索结果,包括:
通过创建的正排索引获取用于对所述召回数据内容进行排序的数据字段,作为状态数据字段;
根据所述状态数据字段对所述召回数据内容进行排序,得到数据内容序列;
基于所述数据内容序列确定响应于所述搜索请求的数据内容,作为所述搜索结果。
根据本发明提供一种数据搜索处理方法,在上述基础上,所述基于所述数据内容序列确定响应于所述搜索请求的数据内容,作为所述搜索结果,包括:
通过从所述数据内容序列中确定待显示数据内容;
通过创建的正排索引获取读取每一待显示数据内容,得到所述搜索结果。
本发明提供一种数据搜索处理装置,包括:
获取模块,用于获取对数据内容以不同索引方式创建的索引;其中,所述索引方式根据数据字段所表示信息的更新频次和/或所述数据字段在数据搜索中的作用确定;所述数据字段用于表示所述数据内容的内容信息和/或状态信息;
搜索模块,用于根据所述索引进行数据搜索。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据搜索处理方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据搜索处理方法的步骤。
本发明提供的一种数据搜索处理方法、装置、电子设备和存储介质,基于表示数据内容的内容信息和/或状态信息的数据字段,对数据字段与数据内容以不同索引方式创建索引。在创建索引时考虑到数据字段所表示信息的更新频次,从而能够基于更新频次选择合适的索引方式,使得更新频次较高的信息更新时无需对数据内容相关的所有信息进行伪删除,从而降低伪删除数据的数据量,有助于提高搜索性能。还可以基于数据字段在数据搜索中的作用以不同索引方式创建索引,使得搜索过程不需要每次均通过扫描原文档获取需要的信息,提高搜索效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的数据搜索处理方法的流程示意图之一;
图2是本发明提供的对静态数据字段、动态数据字段和补充数据字段所创建索引的存储方式示意图;
图3是本发明提供的搜索引擎的索引组成部分示意图;
图4是本发明提供的索引更新具体流程示意图;
图5是本发明提供的搜索工作流程示意图;
图6是本发明提供的数据搜索处理装置的结构框图之一;
图7是本发明提供的电子设备的实体结构示意图;
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本实施例提供的数据搜索处理方法的流程示意图,该数据搜索处理方法应用于搜索引擎,例如,该数据搜索处理方法可以对现有的基于lucene搜索内核的开源的分布式搜索引擎进行改进,使得其根据数据字段所表示信息的更新频次或者数据字段在数据搜索中的作用创建索引,一方面在数据内容及其相关的状态信息发生更新时,不需每次对整个数据内容及其相关的状态信息均进行伪删除,减少倒排索引的更新频率和存储大小;另一方面,在搜索过程中无需每次都通过磁盘对整个数据内容及其相关的状态信息进行扫描获取用于对召回的信息进行排序的信息,减少IO开销,有利于提高搜索性能。
参见图1,该数据搜索处理方法包括:
步骤101:获取对数据内容以不同索引方式创建的索引;其中,所述索引方式根据数据字段所表示信息的更新频次或者所述数据字段在数据搜索中的作用确定;所述数据字段用于表示所述数据内容的内容信息和/或状态信息。
数据内容为进行存储以在后续通过索引进行查找的内容,不包括数据内容的状态信息。例如,数据内容是新闻内容本身,不包括新闻内容的点击量、浏览量、评论动态等新闻内容的状态信息。数据字段可以是表示数据内容的内容信息的字段,例如,数据内容的标题、作者、从数据内容中提取的关键词等,还可以是表示数据内容的状态信息的字段,例如,点击量、浏览量、评论动态等。
数据字段所表示信息的更新频次指的是数据字段所表示信息发生更新的频率。例如,新闻内容的点击量平均每天更新100次。通常数据字段在数据搜索中的作用包括确定与搜索字段关联的召回数据内容、对召回数据内容进行排序和读取数据内容。
在现有技术中,由于是将数据内容和状态信息作为整体存储在文档中,进而建立分词与文档的倒排索引的。那么无论是数据内容还是状态信息发生了更新,均需要对整个文档进行伪删除。而在本申请中,在创建索引时,可以考虑数据字段的更新频次选择适当的索引方式,从而降低对整个文档进行伪删除的频率。例如,更新频次较高的状态信息作为数据字段时,可以创建通过数据内容搜索到该数据字段的正排索引,从而在状态信息发生更新时,只需要在正排索引中对该状态信息进行修改而不需要对整个文档进行伪删除,大大降低了伪删除数据量。
还可以考虑数据字段在数据搜索中的作用以不同索引方式创建索引,从而使得数据搜索过程中可以通过索引快速获取需要的信息,而不是每次通过整个包含数据内容和数据内容状态信息的文档获取需要的信息,从而提高了搜索效率。例如,在数据搜索中的作用是对召回数据内容进行排序的数据字段,创建通过数据内容搜索到该数据字段的正排索引,从而针对每一数据内容,均可以通过该正排索引快速获取用于进行排序的信息,无需对整个文档进行扫描,提高了搜索效率。
步骤102:根据所述索引进行数据搜索。
数据搜索的过程通常基于确定的搜索字段进行,例如,获取用户输入的搜索语句后,可以从该搜索语句提取出搜索字段,基于创建的通过搜索字段搜索数据内容的倒排索引,通过搜索字段与倒排索引中数据字段的匹配获取与搜索字段关联的召回数据内容,进而通过正排索引快速获取用于对召回数据内容进行排序的信息,实现对召回数据内容的排序,基于排序后的召回数据内容扫描到作为搜索结果的召回数据内容。
本实施例提供了一种数据搜索处理方法,基于表示数据内容的内容信息和/或状态信息的数据字段,对数据字段与数据内容以不同索引方式创建索引。在创建索引时考虑到数据字段所表示信息的更新频次,从而能够基于更新频次选择合适的索引方式,使得更新频次较高的信息更新时无需对数据内容相关的所有信息进行伪删除,从而降低伪删除数据的数据量,有助于提高搜索性能。还可以基于数据字段在数据搜索中的作用以不同索引方式创建索引,使得搜索过程不需要每次均通过扫描原文档获取需要的信息,提高搜索效率。
设置合适的预设更新频次,可以在同时考虑数据字段所表示信息的更新频次和数据字段在数据搜索中的作用的情况下,确定创建索引的索引方式。例如,可以综合考虑数据字段所表示信息的更新频次和数据字段在数据搜索中的作用,将数据字段分为静态数据字段、动态数据字段和补充数据字段三个类型,进而通过数据字段所属的类型以不同索引方式创建索引。
这三个类型的数据字段所表示信息的更新频次和在数据搜索中的作用如下:
静态数据字段:用于根据搜索字段召回的数据内容,更新频率较低。比如资源名称,作者、别名、标签、分类、发布时间等等。
动态数据字段:用于提升搜索排序的字段,更新频率很快。比如播放量、点赞数、收藏量、评论数、评分、点击量、转化率等等。动态数据类型不参与分词检索,只用于提升文档得分权重。
补充数据字段:用于补充搜索返回数据的字段,更新频率较快,不影响搜索召回和排序,只影响搜索结果展示。更新支持实时更新。比如封面、播放地址、角标、更新时间,集数等等。
通常表示状态信息的数据字段(动态数据字段)更新频次较高,且用于搜索出进行展示的数据内容的数据字段(补充数据字段)会因为需要展示的页数等的变更更新频次也较高,因而对于这两种用途的数据字段创建通过数据内容搜索到数据字段的正排索引。然而对于用于查询到与搜索字段相关的数据内容的数据字段(静态数据字段)通常为更新频次较低的数据字段,因而创建通过数据字段搜索到数据内容的倒排索引。
进一步地,在上述各实施例的基础上,在获取对数据内容以不同索引方式创建的索引之前,还包括:
若所述数据字段所表示信息的更新频次大于预设更新频次,则创建正排索引;其中,所述正排索引为通过所述数据内容搜索到所述数据字段的索引;
若所述数据字段所表示信息的更新频次小于或等于所述预设更新频次,则创建倒排索引,其中,所述倒排索引为通过所述数据字段搜索到所述数据内容的索引。
具体地,通过所述数据内容搜索到所述数据字段的正排索引,实际上是通过数据内容的内容标识搜索到数据字段的索引。通过所述数据字段搜索到所述数据内容的倒排索引,实际上是通过数据字段搜索到数据内容的内容标识的索引。
通常动态数据字段和补充数据字段所表示信息的更新频次较大,可以对动态数据字段和补充数据字段创建倒排索引,而静态数据字段所表示信息的更新频次较小,则可以对静态数据字段创建正排索引。
本实施例中,对于更新频次较高的数据字段,不创建倒排索引,从而在数据字段进行频繁更新的过程中,只需要更新正排索引中与数据内容对应存储的数据字段的内容即可,不需要对整个数据内容及其状态信息均进行更新,降低了伪删除数据的数据量。
进一步地,在上述各实施例的基础上,在获取对数据内容以不同索引方式创建的索引之前,还包括:
若所述数据字段在数据搜索中的作用为确定与搜索字段关联的召回数据内容,则创建倒排索引,其中,所述倒排索引为通过所述数据字段搜索到所述数据内容的索引;
若所述数据字段在数据搜索中的作用不是确定所述召回数据内容,则创建正排索引;其中,所述正排索引为通过所述数据内容搜索到所述数据字段的索引。
在搜索过程中相对于正排索引,倒排索引能够更加高效地确定与搜索字段关联的召回数据内容,因此本实施例中对上述静态数据字段可以创建倒排索引,而上述的动态数据字段和补充数据字段均不是用于确定召回数据内容,因此可以对动态数据字段和补充数据字段创建正排索引。
本实施例中,根据数据字段在数据搜索中的作用是否为确定召回数据内容以不同索引方式创建索引,有利于提高搜索效率,优化搜索引擎的性能。
进一步地,在上述各实施例的基础上,所述若所述数据字段在数据搜索中的作用不是确定所述召回数据内容,则创建正排索引,包括:
若所述数据字段在数据搜索中的作用为对所述召回数据内容进行排序,则将创建的正排索引存储在缓存中;
若所述数据字段在数据搜索中的作用为读取所述数据内容,则将创建的正排索引存储在磁盘中。
为了进一步提高搜索性能,还可以针对搜索过程将搜索存储到不同的存储空间中,由于召回数据内容通常数据量较大,例如,召回了1000个数据内容,当需要对所有数据内容排序时运算量较大,此时若从磁盘读取用于进行排序的数据字段则耗时较长,为了提高排序效率,对所述召回数据内容进行排序的数据字段(例如,上述动态数据字段)存储在缓存中。
此外,由于用于进行展示的数据内容通常较少,例如,需要对10个数据内容的内容ID对应的数据内容进行相关信息的展示,因此可以将读取所述数据内容的数据字段(例如,上述的补充数据字段)存储到磁盘中。由于要处理的数据量较少,通过磁盘存储不会影响搜索性能,且不会额外占用内存资源。
本实施例中,对于不同数据字段创建的索引根据具体处理过程,选择合适的存储位置,有利于进步优化搜索过程,提高搜索效率。
具体来说,图2为本实施例对静态数据字段、动态数据字段和补充数据字段所创建索引的存储方式示意图,参见图2,可以将用于快速定位搜索字段位置的词典索引(即term索引),以及针对静态数据字段创建的倒排索引存储在同一位置,从而能通过term索引快速检索到搜索字段关联的数据内容的内容ID。针对动态数据字段创建的索引以key-value的方式存储缓存中,以便能快速对召回数据内容进行相关排序。针对补充数据字段创建的索引保存在磁盘中,数据内容的内容ID列表也保存在磁盘中。通常经过搜索召回、排序、分页后,只要返回一页文档(通常不超过50个),因而通过正排索引查询磁盘也能快速获取需要展示的数据内容。
图3为本实施例提供的搜索引擎的索引组成部分示意图,参见图3,在搜索引擎中可以包括如下索引:
词典索引:用于快速确定索引字段Term所在的位置,可加载至内存。
数据字段-数据内容的内容ID(内容ID即内容标识)倒排索引:用于根据Term查找数据内容的内容ID列表。
内容ID-数据字段的正排索引(以key-value缓存的方式存储):用于根据数据内容的内容ID列表,查找数据内容。由于使用key-value内存缓存,查询速度远高于根据正排索引扫描磁盘。从而大大提高了效率。
内容ID-数据内容存储位置的正排索引:存储数据内容的内容ID和文档位置索引。
磁盘中数据内容:数据内容的内容ID和数据内容均存储在磁盘中。
基于针对静态数据字段、动态数据字段和补充数据字段创建的索引,图4为本实施例提供的索引更新具体流程示意图,参见图4,该过程包括如下内容:
步骤1、获取数据内容更新请求(其中,数据内容更新请求指的是对数据内容更新或者对数据内容的状态信息进行更新的请求);
搜索引擎获取数据内容更新请求,进行参数预检验,通过后,进行下一步。
步骤2、判断数据内容是否存在(可以通过数据内容对应的内容ID判断待进行更新的数据内容是否存在);
根据数据内容对应的主键检索数据内容是否存在。
如果不存在,则走数据内容的新建文档流程(即步骤3),
如果数据内容已存在,则走数据内容的文档更新流程(即步骤4);
步骤3、数据内容的文档新建流程;
对数据内容所有类型字段分类处理:
静态数据字段(用于召回,如资源名称,作者、别名、标签、分类、发布时间等等):对静态数据字段进行分词,构建term索引,构建term映射数据内容对应文档列表的倒排索引。
动态数据字段(用于提升排序权重,如播放量、点赞数、收藏量、评论数、评分、点击量、转化率等等):将动态数据字段存入数据内容的key-value缓存。
补充数据字段(用于补充信息,不影响召回和排序结果,如封面、播放地址、角标、更新时间,集数等等):将补充数据字段存入磁盘文档,并构建数据内容对应文档正排索引。
步骤4、数据内容的文档更新流程
根据数据内容请求更新的字段分类处理:
静态数据字段:对原有数据内容所在文档标记伪删除,并重新建立更新后的数据内容所在的新文档,见步骤3。
动态数据字段:更新文档key-value缓存中的该数据字段的信息。
补充数据字段:更新磁盘文档中该数据字段对应的信息。
步骤5、构建索引完成。
进一步地,在上述各实施例的基础上,所述根据所述索引进行数据搜索,包括:
根据搜索字段和创建的倒排索引,确定与所述搜索字段关联的召回数据内容;其中,所述倒排索引为通过所述数据字段搜索到所述数据内容的索引;
和/或,根据所述召回数据内容和创建的正排索引,确定响应于所述搜索请求的搜索结果;其中,所述正排索引为通过所述数据内容搜索到所述数据字段的索引。
搜索字段根据用户输入的搜索语句提取,例如,对搜索语句进行分词处理得到。
具体来说,基于搜索字段,通过对静态数据字段创建的倒排索引快速确定了召回数据内容。
本实施例中,在数据搜索的过程中,首先通过搜索字段与倒排索引中数据字段的匹配,确定了与搜索字段关联的数据内容,通过倒排索引实现了对召回数据内容的快速确定。
进一步地,在上述各实施例的基础上,所述根据所述召回数据内容和创建的正排索引,确定响应于所述搜索请求的搜索结果,包括:
通过创建的正排索引获取用于对所述召回数据内容进行排序的数据字段,作为状态数据字段;
根据所述状态数据字段对所述召回数据内容进行排序,得到数据内容序列;
基于所述数据内容序列确定响应于所述搜索请求的数据内容,作为所述搜索结果。
具体地,通过对上述动态数据字段创建的正排索引能够快速获取用于进行数据内容排序的数据字段,进而实现对数据内容推荐程度的排序。
本实施例中,通过正排索引快速获取到了用于对数据内容进行排序的信息,实现了对数据内容的排序。
进一步地,在上述各实施例的基础上,所述基于所述数据内容序列确定响应于所述搜索请求的数据内容,作为所述搜索结果,包括:
从所述数据内容序列中确定待显示数据内容;
通过创建的正排索引获取读取每一待显示数据内容,得到所述搜索结果。
具体来说,根据显示配置信息从所述数据内容序列中确定待显示数据内容,其中,显示配置信息包括如下至少一种:显示的搜索页面中每一页展示的数据内容条数、当前请求显示的页面数。
本实施例中,通过正排索引读取到需要进行显示的数据内容,得到搜索结果,实现了搜索过程。
图5为本实施例提供的搜索引擎的搜索工作流程示意图,参见图5,该搜索过程包括:
步骤1.收到搜索请求
对搜索请求参数预处理,语法检查。
步骤2.根据查询语句类型进行分类查询,得到用于进行搜索的搜索字段。
分词类型:将查询词进行分词,得到分词后的term词条。
非分词类型:如前缀搜索,根据词典索引,检索符合前缀要求的term词条列表。
步骤3.查询静态数据字段的倒排索引
其中,步骤2获取了符合要求的所有词条term列表,根据词典索引、数据字段-数据内容的内容ID的倒排索引,查询获取所有符合要求的内容ID列表
步骤4.对召回的内容ID进行交并运算
所有符合召回条件的内容ID列表进行交并运算,获得最终召回内容ID列表,同时给以文档匹配度得分。例如,求通过每一搜索字段召回的数据内容的内容ID的交集,得到最终召回内容ID列表。
步骤5.获取动态数据字段,提升文档得分权重,综合打分排序。
对步骤4召回内容ID列表,查询文档key-value获取动态数据。如播放量、点赞数、收藏量、评论数、评分、点击量、转化率等等,按照召回时的匹配度和提升权重规则进行综合打分排序。获得最终排序结果。
步骤6.进行分页
对排序后的结果,按照搜索请求的分页号码和分页大小,进行分页,获得该次搜索到的所有内容ID列表(即待进行显示的内容ID列表)。
步骤6.查询补充数据信息
对排序分页后的结果,根据该次搜索到的所有内容ID列表查询磁盘文档,获取补充数据信息(如封面、播放地址、角标、更新时间,集数等等),补充完整搜索需要的信息,得到搜索结果。
步骤7.返回完整的搜索结果
本申请根据字段类型及字段更新频率,确定字段是否为静态数据字段、动态数据字段和补充数据字段,分别建立不同的索引方式的索引进行存储;将静态数据字段存入term索引和倒排索引中,动态数据字段存入在key-value缓存中,补充数据字段存入磁盘文档列表。在搜索过程中,根据数据字段-数据内容的内容ID倒排索引,基于召回内容ID列表,查询文档key-value,获得排序结果,根据内容ID列表查询磁盘文档,获取完整结果。
具体地,本申请根据字段的不同用途(召回、排序、补充)、不同更新频率定义了静态、动态和补充类型字段,进行分类存储。静态类型的数据存储在词典和倒排索引中,动态数据存储在缓存中,补充数据存储在磁盘中(使用正排索引加速查找),同时在文档索引更新时根据更新的字段类型,分别处理,减少由于更新造成的冗余的数据。同时使用文档key-value缓存提高了召回速度,仅在排序分页后,才需要通过正排索引获取少量文档内容,大大减轻了磁盘IO压力。同时使用物理更新方法,减少了伪删除数据的冗余,且减少了倒排索引大小,及更新频率,提高了搜索性能。
图6为本实施例提供的一种数据搜索处理装置的结构框图,参见图6,包括获取模块601和搜索模块602,其中,
获取模块601,用于获取对数据内容以不同索引方式创建的索引;其中,所述索引方式根据数据字段所表示信息的更新频次和/或所述数据字段在数据搜索中的作用确定;所述数据字段用于表示所述数据内容的内容信息和/或状态信息;
搜索模块602,用于根据所述索引进行数据搜索。
本实施例提供的数据搜索处理装置适用于上述各实施例提供的数据搜索处理方法,在此不再赘述。
本实施例提供一种数据搜索处理装置,基于表示数据内容的内容信息和/或状态信息的数据字段,对数据字段与数据内容以不同索引方式创建索引。在创建索引时考虑到数据字段所表示信息的更新频次,从而能够基于更新频次选择合适的索引方式,使得更新频次较高的信息更新时无需对数据内容相关的所有信息进行伪删除,从而降低伪删除数据的数据量,有助于提高搜索性能。还可以基于数据字段在数据搜索中的作用以不同索引方式创建索引,使得搜索过程不需要每次均通过扫描原文档获取需要的信息,提高搜索效率。
根据本发明提供一种数据搜索处理装置,在上述基础上,在获取对数据内容以不同索引方式创建的索引之前,还包括:
若所述数据字段所表示信息的更新频次大于预设更新频次,则创建正排索引;其中,所述正排索引为通过所述数据内容搜索到所述数据字段的索引;
若所述数据字段所表示信息的更新频次小于或等于所述预设更新频次,则创建倒排索引,其中,所述倒排索引为通过所述数据字段搜索到所述数据内容的索引。
根据本发明提供一种数据搜索处理装置,在上述基础上,在获取对数据内容以不同索引方式创建的索引之前,还包括:
若所述数据字段在数据搜索中的作用为确定与搜索字段关联的召回数据内容,则创建倒排索引,其中,所述倒排索引为通过所述数据字段搜索到所述数据内容的索引;
若所述数据字段在数据搜索中的作用不是确定所述召回数据内容,则创建正排索引;其中,所述正排索引为通过所述数据内容搜索到所述数据字段的索引。
根据本发明提供一种数据搜索处理装置,在上述基础上,所述若所述数据字段在数据搜索中的作用不是确定所述召回数据内容,则创建正排索引,包括:
若所述数据字段在数据搜索中的作用为对所述召回数据内容进行排序,则将创建的正排索引存储在缓存中;
若所述数据字段在数据搜索中的作用为读取所述数据内容,则将创建的正排索引存储在磁盘中。
根据本发明提供一种数据搜索处理装置,在上述基础上,所述根据所述索引进行数据搜索,包括:
根据搜索字段和创建的倒排索引,确定与所述搜索字段关联的召回数据内容;其中,所述倒排索引为通过所述数据字段搜索到所述数据内容的索引;
和/或,根据所述召回数据内容和创建的正排索引,确定响应于所述搜索请求的搜索结果;其中,所述正排索引为通过所述数据内容搜索到所述数据字段的索引。
根据本发明提供一种数据搜索处理装置,在上述基础上,所述根据所述召回数据内容和创建的正排索引,确定响应于所述搜索请求的搜索结果,包括:
通过创建的正排索引获取用于对所述召回数据内容进行排序的数据字段,作为状态数据字段;
根据所述状态数据字段对所述召回数据内容进行排序,得到数据内容序列;
基于所述数据内容序列确定响应于所述搜索请求的数据内容,作为所述搜索结果。
根据本发明提供一种数据搜索处理装置,在上述基础上,所述基于所述数据内容序列确定响应于所述搜索请求的数据内容,作为所述搜索结果,包括:
通过从所述数据内容序列中确定待显示数据内容;
通过创建的正排索引获取读取每一待显示数据内容,得到所述搜索结果。
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(Communications Interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行数据搜索处理方法,该方法包括:
获取对数据内容以不同索引方式创建的索引;其中,所述索引方式根据数据字段所表示信息的更新频次和/或所述数据字段在数据搜索中的作用确定;所述数据字段用于表示所述数据内容的内容信息和/或状态信息;
根据所述索引进行数据搜索。
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行数据搜索处理方法,该方法包括:
获取对数据内容以不同索引方式创建的索引;其中,所述索引方式根据数据字段所表示信息的更新频次和/或所述数据字段在数据搜索中的作用确定;所述数据字段用于表示所述数据内容的内容信息和/或状态信息;
根据所述索引进行数据搜索。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现执行数据搜索处理方法,该方法包括:
获取对数据内容以不同索引方式创建的索引;其中,所述索引方式根据数据字段所表示信息的更新频次和/或所述数据字段在数据搜索中的作用确定;所述数据字段用于表示所述数据内容的内容信息和/或状态信息;
根据所述索引进行数据搜索。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据搜索处理方法,其特征在于,包括:
获取对数据内容以不同索引方式创建的索引;其中,所述索引方式根据数据字段所表示信息的更新频次和/或所述数据字段在数据搜索中的作用确定;所述数据字段用于表示所述数据内容的内容信息和/或状态信息;
根据所述索引进行数据搜索。
2.根据权利要求1所述的数据搜索处理方法,其特征在于,在获取对数据内容以不同索引方式创建的索引之前,还包括:
若所述数据字段所表示信息的更新频次大于预设更新频次,则创建正排索引;其中,所述正排索引为通过所述数据内容搜索到所述数据字段的索引;
若所述数据字段所表示信息的更新频次小于或等于所述预设更新频次,则创建倒排索引,其中,所述倒排索引为通过所述数据字段搜索到所述数据内容的索引。
3.根据权利要求1所述的数据搜索处理方法,其特征在于,在获取对数据内容以不同索引方式创建的索引之前,还包括:
若所述数据字段在数据搜索中的作用为确定与搜索字段关联的召回数据内容,则创建倒排索引,其中,所述倒排索引为通过所述数据字段搜索到所述数据内容的索引;
若所述数据字段在数据搜索中的作用不是确定所述召回数据内容,则创建正排索引;其中,所述正排索引为通过所述数据内容搜索到所述数据字段的索引。
4.根据权利要求3所述的数据搜索处理方法,其特征在于,所述若所述数据字段在数据搜索中的作用不是确定所述召回数据内容,则创建正排索引,包括:
若所述数据字段在数据搜索中的作用为对所述召回数据内容进行排序,则将创建的正排索引存储在缓存中;
若所述数据字段在数据搜索中的作用为读取所述数据内容,则将创建的正排索引存储在磁盘中。
5.根据权利要求1所述的数据搜索处理方法,其特征在于,所述根据所述索引进行数据搜索,包括:
根据搜索字段和创建的倒排索引,确定与所述搜索字段关联的召回数据内容;其中,所述倒排索引为通过所述数据字段搜索到所述数据内容的索引;
和/或,根据所述召回数据内容和创建的正排索引,确定响应于所述搜索请求的搜索结果;其中,所述正排索引为通过所述数据内容搜索到所述数据字段的索引。
6.根据权利要求5所述的数据搜索处理方法,其特征在于,所述根据所述召回数据内容和创建的正排索引,确定响应于所述搜索请求的搜索结果,包括:
通过创建的正排索引获取用于对所述召回数据内容进行排序的数据字段,作为状态数据字段;
根据所述状态数据字段对所述召回数据内容进行排序,得到数据内容序列;
基于所述数据内容序列确定响应于所述搜索请求的数据内容,作为所述搜索结果。
7.根据权利要求6所述的数据搜索处理方法,其特征在于,所述基于所述数据内容序列确定响应于所述搜索请求的数据内容,作为所述搜索结果,包括:
通过从所述数据内容序列中确定待显示数据内容;
通过创建的正排索引获取读取每一待显示数据内容,得到所述搜索结果。
8.一种数据搜索处理装置,其特征在于,包括:
获取模块,用于获取对数据内容以不同索引方式创建的索引;其中,所述索引方式根据数据字段所表示信息的更新频次和/或所述数据字段在数据搜索中的作用确定;所述数据字段用于表示所述数据内容的内容信息和/或状态信息;
搜索模块,用于根据所述索引进行数据搜索。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述的数据搜索处理方法的步骤。
10.一种非暂态可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述的数据搜索处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110321418.2A CN113076456A (zh) | 2021-03-25 | 2021-03-25 | 一种数据搜索处理方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110321418.2A CN113076456A (zh) | 2021-03-25 | 2021-03-25 | 一种数据搜索处理方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113076456A true CN113076456A (zh) | 2021-07-06 |
Family
ID=76610217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110321418.2A Pending CN113076456A (zh) | 2021-03-25 | 2021-03-25 | 一种数据搜索处理方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113076456A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008015810A (ja) * | 2006-07-06 | 2008-01-24 | Hitachi Software Eng Co Ltd | 複数列の表データにおけるインデクス分割管理方法 |
KR20110042576A (ko) * | 2009-10-19 | 2011-04-27 | 한국과학기술정보연구원 | 차세대 대용량 저장장치에 적합한 동적 색인 관리 시스템 및 그 방법과 그 소스 프로그램을 기록한 기록매체 |
CN105354151A (zh) * | 2014-08-19 | 2016-02-24 | 阿里巴巴集团控股有限公司 | 一种缓存管理方法与设备 |
CN106294768A (zh) * | 2016-08-11 | 2017-01-04 | 深圳市宜搜科技发展有限公司 | 信息搜索方法及信息搜索引擎 |
CN106407250A (zh) * | 2015-07-28 | 2017-02-15 | 阿里巴巴集团控股有限公司 | 信息查询方法、装置、系统、服务器和客户端 |
CN108694188A (zh) * | 2017-04-07 | 2018-10-23 | 腾讯科技(深圳)有限公司 | 一种索引数据更新的方法以及相关装置 |
CN110069500A (zh) * | 2019-04-23 | 2019-07-30 | 东华大学 | 一种非关系型数据库动态混合索引方法 |
-
2021
- 2021-03-25 CN CN202110321418.2A patent/CN113076456A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008015810A (ja) * | 2006-07-06 | 2008-01-24 | Hitachi Software Eng Co Ltd | 複数列の表データにおけるインデクス分割管理方法 |
KR20110042576A (ko) * | 2009-10-19 | 2011-04-27 | 한국과학기술정보연구원 | 차세대 대용량 저장장치에 적합한 동적 색인 관리 시스템 및 그 방법과 그 소스 프로그램을 기록한 기록매체 |
CN105354151A (zh) * | 2014-08-19 | 2016-02-24 | 阿里巴巴集团控股有限公司 | 一种缓存管理方法与设备 |
CN106407250A (zh) * | 2015-07-28 | 2017-02-15 | 阿里巴巴集团控股有限公司 | 信息查询方法、装置、系统、服务器和客户端 |
CN106294768A (zh) * | 2016-08-11 | 2017-01-04 | 深圳市宜搜科技发展有限公司 | 信息搜索方法及信息搜索引擎 |
CN108694188A (zh) * | 2017-04-07 | 2018-10-23 | 腾讯科技(深圳)有限公司 | 一种索引数据更新的方法以及相关装置 |
CN110069500A (zh) * | 2019-04-23 | 2019-07-30 | 东华大学 | 一种非关系型数据库动态混合索引方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10789309B1 (en) | Associating an entity with a search query | |
US10452691B2 (en) | Method and apparatus for generating search results using inverted index | |
JP5575902B2 (ja) | クエリのセマンティックパターンに基づく情報検索 | |
CN101154224B (zh) | 一种网址导航方法及系统 | |
JP7451747B2 (ja) | コンテンツを検索する方法、装置、機器及びコンピュータ読み取り可能な記憶媒体 | |
US20100042610A1 (en) | Rank documents based on popularity of key metadata | |
CN107870915B (zh) | 对搜索结果的指示 | |
CN113297457B (zh) | 一种高精准性的信息资源智能推送系统及推送方法 | |
CN114090877A (zh) | 职位信息推荐方法、装置、电子设备及存储介质 | |
CN110990701B (zh) | 书籍搜索方法、计算设备及计算机存储介质 | |
CN110851709B (zh) | 资讯推送方法、装置、计算机设备和存储介质 | |
US9672253B1 (en) | Ranking a search result document based on data usage to load the search result document | |
CN109918661B (zh) | 同义词获取方法及装置 | |
US20080033931A1 (en) | Cap-sensitive text search for documents | |
CN108256064B (zh) | 一种数据搜索方法和装置 | |
CN113076456A (zh) | 一种数据搜索处理方法、装置、电子设备和存储介质 | |
CN113742291A (zh) | 一种文件保存方法、装置以及计算机存储介质 | |
CN116610853A (zh) | 搜索推荐方法、搜索推荐系统、计算机设备及存储介质 | |
CN109978645B (zh) | 一种数据推荐方法和装置 | |
JP6267252B2 (ja) | 検索装置、検索方法及び検索プログラム | |
CN111460307B (zh) | 一种移动终端精确搜索方法和装置 | |
US11238052B2 (en) | Refining a search request to a content provider | |
KR102351264B1 (ko) | 사용자 맞춤형 신간 도서 정보의 제공 방법 및 그 시스템 | |
US20240220528A1 (en) | System and method for generating ontologies for enhanced search | |
CN116932781A (zh) | 一种基于ac自动机的企业信息匹配方法与系统 |
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 |