CN107203532B - 索引系统的构建方法、搜索的实现方法及装置 - Google Patents
索引系统的构建方法、搜索的实现方法及装置 Download PDFInfo
- Publication number
- CN107203532B CN107203532B CN201610151332.9A CN201610151332A CN107203532B CN 107203532 B CN107203532 B CN 107203532B CN 201610151332 A CN201610151332 A CN 201610151332A CN 107203532 B CN107203532 B CN 107203532B
- Authority
- CN
- China
- Prior art keywords
- document
- index
- data
- search
- service system
- 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
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
Abstract
本发明提供了一种索引系统的构建方法、搜索的实现方法及装置,其中的索引系统的构建方法主要包括:获取需要进行索引处理的数据文档;为数据文档设置用于唯一标识数据文档的文档标识,并从数据文档中获取用于构建索引的信息;根据用于构建索引的信息以及文档标识在搜索引擎服务系统中为数据文档构建索引;将所述数据文档和文档标识存储于数据存储服务系统中;其中,搜索引擎服务系统包括多台基于固态硬盘的服务器,数据存储服务系统包括多台基于机械硬盘的服务器。本发明提供的技术方案在保证了索引系统具有良好的搜索性能的同时,使索引系统的实现成本得到了一定的控制。
Description
技术领域
本发明涉及互联网技术,尤其涉及一种索引系统的构建方法、搜索的实现方法、索引系统的构建装置以及搜索的实现装置。
背景技术
搜索引擎(Search Engine)是众多用户在日常工作以及日常生活中经常使用的一个工具,用户利用搜索引擎可以从互联网上方便快捷的获得其所需的信息。另外,搜索引擎也是企业对其内部数据进行管理的有效工具。
在实际应用中,用于搜索的数据通常是海量数据,且用于搜索的数据的数量通常会在不断的增加。用于搜索的数据数量的不断增加不但会使数据所需的存储空间不断增加,而且,还会对搜索性能(如搜索的响应时间等)产生不良影响。
对于用于搜索的数据的管理方/提供方而言,如何兼顾搜索的实现成本以及搜索性能,是一个非常值得关注的焦点问题。
发明内容
本发明的目的是提供一种索引系统的构建方法、搜索的实现方法及装置。
根据本发明的一个方面,提供一种索引系统的构建方法,该方法主要包括以下步骤:获取需要进行索引处理的数据文档;为所述数据文档设置用于唯一标识数据文档的文档标识,并从所述数据文档中获取用于构建索引的信息;根据所述用于构建索引的信息以及文档标识在搜索引擎服务系统中为所述数据文档构建索引;将所述数据文档和文档标识存储于数据存储服务系统中;其中,所述搜索引擎服务系统包括多台基于固态硬盘的服务器,所述数据存储服务系统包括多台基于机械硬盘的服务器。
根据本发明的另一个方面,还提供了一种搜索的实现方法,该方法主要包括以下步骤:从接收到的搜索请求中获取搜索关键词;根据搜索引擎服务系统中构建的索引获取所述搜索关键词对应的索引;根据所述搜索关键词对应的索引中的文档标识从数据存储服务系统中获取相应的数据文档;根据所述获取的数据文档形成所述搜索请求的搜索结果;其中,所述搜索引擎服务系统包括多台基于固态硬盘的服务器,所述数据存储服务系统包括多台基于机械硬盘的服务器。
根据本发明的再一个方面,提供一种索引系统的构建装置,该装置主要包括:文档获取模块,用于获取需要进行索引处理的数据文档;标识及获取模块,为所述数据文档设置用于唯一标识数据文档的文档标识,并从所述数据文档中获取用于构建索引的信息;构建索引模块,用于根据所述用于构建索引的信息以及文档标识在搜索引擎服务系统中为数据文档构建索引;存储处理模块,用于将所述数据文档和文档标识存储于数据存储服务系统中;其中,所述搜索引擎服务系统包括多台基于固态硬盘的服务器,所述数据存储服务系统包括多台基于机械硬盘的服务器。
根据本发明的再一个方面,还提供了一种搜索的实现装置,该装置主要包括:关键词获取模块,用于从接收到的搜索请求中获取搜索关键词;索引获取模块,用于根据搜索引擎服务系统中构建的索引获取所述搜索关键词对应的索引;数据文档获取模块,用于根据所述搜索关键词对应的索引中的文档标识从数据存储服务系统中获取相应的数据文档;搜索结果形成模块,用于根据所述获取的数据文档形成所述搜索请求的搜索结果;其中,所述搜索引擎服务系统包括多台基于固态硬盘的服务器,所述数据存储服务系统包括多台基于机械硬盘的服务器。
与现有技术相比,本发明具有以下优点:本发明通过设置包含有多台基于固态硬盘的服务器的搜索引擎服务系统以及包含有多台基于机械硬盘的服务器的数据存储服务系统,这样,可以利用为数据文档设置的文档标识以及从数据文档中获得的用于构建索引的信息在基于固态硬盘的服务器中为数据文档构建索引,而在基于机械硬盘的服务器中存储数据文档和文档标识,由于搜索引擎服务系统在数据处理方面其性能优于数据存储服务系统,而数据存储服务系统在成本方面优于索引擎服务器,从而本发明在尽可能的避免了海量的数据文档对搜索引擎服务系统的搜索性能造成不良影响的同时,尽可能的降低了海量的数据文档对存储成本的影响。由此可知,本发明提供的技术方案在保证了索引系统具有良好的搜索性能的同时,使索引系统的实现成本得到了一定的控制。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例一的索引系统的构建方法流程图;
图2为本发明实施例二的索引系统的构建方法时序图;
图3为本发明实施例三的搜索的实现方法流程图;
图4为本发明实施例四的搜索的实现方法时序图;
图5为本发明实施例五的索引系统的构建装置示意图;
图6为本发明实施例五的标识及获取模块一个结构示意图;
图7为本发明实施例五的标识及获取模块另一个结构示意图;
图8为本发明实施例五的构建索引模块的结构示意图;
图9为本发明实施例五的存储处理模块的结构示意图;
图10为本发明实施例六的搜索的实现装置示意图;
图11为本发明实施例六的索引获取模块的结构示意图;
图12为本发明实施例六的数据文档获取模块的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施例作详细描述。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然本发明的流程图将各项操作描述成顺序的处理,但是,其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
本实施例中的网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或者基于云计算(Cloud Computing)的由大量计算机或者网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述网络设备可以接入网络并与网络中的其他网络设备进行信息交互操作。其中,所述网络设备所能够接入的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述网络设备以及网络等仅为举例,其他现有的或今后可能出现的网络设备或者网络如可适用于本申请,也应包含在本申请保护范围以内,并以引用方式包含于此。
后面描述所讨论的方法(其中一些通过流程图示出)实施例可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合的形式来实施。当用软件、固件、中间件或者微代码来实施时,用以实施必要任务的程序代码或者代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本申请的示例性实施例的目的,但是,本申请可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
应当理解的是,当一个单元被称为“连接”或者“耦合”到另一个单元时,其可以直接连接或者耦合到所述另一个单元,也可以存在中间单元。与此相对的,当一个单元被称为“直接连接”或者“直接耦合”到另一个单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如,“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。
这里所使用的术语仅仅是为了描述具体实施例,而不是意图限制示例性实施例。除非上下文中明确地另有所指,否则,这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定了所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或者添加一个或更多的其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换的实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图对本申请的技术方案作进一步详细描述。
实施例一、索引系统的构建方法。
图1为本实施例的索引系统的构建方法流程图。如图1所示,本实施例的方法主要包括:步骤S100、步骤S110、步骤S120以及步骤S130。本实施例所记载的方法通常是在网络设备中被执行的,优选的,本实施例所记载的方法通常是在用于搜索的数据的管理方/提供方侧的网络设备中执行。
下面对图1中的各步骤分别进行详细描述。
S100、获取需要进行索引处理的数据文档。
具体的,本实施例中的需要进行索引处理的数据文档是指需要设置于索引系统中的数据文档(也即需要添加到索引系统中的数据文档),且本实施例中的索引系统主要包括:搜索引擎服务系统以及数据存储服务系统。为方便描述,在下述实施例中,将需要进行索引处理的数据文档简称为原始数据文档。
对于采用本实施例的索引系统的构建方法的使用者(即上述用于搜索的数据的管理方/提供方)而言,本实施例中的原始数据文档可以是其内部数据文档,如网络终端用户通过与管理方/提供方所提供的网站进行信息交互而产生的数据文档即为该管理方/提供方的内部数据文档。
对于采用本实施例的索引系统的构建方法的使用者(即上述用于搜索的数据的管理方/提供方)而言,本实施例中的原始数据文档也可以是外部数据文档,如用户通过与除了管理方/提供方提供的网站之外的其他网站进行信息交互而产生的数据文档即为该管理方/提供方的外部数据文档。
本实施例可以开启相应的服务以获取原始数据文档,且本实施例可以通过多种方式获取原始数据文档,如对于内部数据文档而言,本实施例可以通过流量包抓取等方式获取到原始数据文档;再如对于外部数据文档而言,本实施例可以通过网络爬取等方式从互联网中爬取到不同类型的数据源的原始数据文档。上述数据源的类型可以为微博类型的数据源或者新闻类型的数据源或者电子商务类型的数据源等。本实施例不限制获取原始数据文档的具体实现方式以及获取到的原始数据文档的具体表现形式。
S110、为上述获取到的数据文档设置用于唯一标识该数据文档的文档标识,并从该数据文档中获取用于构建索引的信息。
具体的,本实施例中的文档标识主要用于标识数据文档,由于从一个数据文档中获取到的用于构建索引的信息是与该数据文档相对应的,因此,本实施例中的从数据文档中获取到的用于构建索引的信息、数据文档的文档标识以及数据文档之间存在一一对应关系,即一个文档标识仅对应一个数据文档以及从该数据文档中获取到的用于构建索引的信息,而一个数据文档以及从该数据文档获取到的用于构建索引的信息也仅对应同一个文档标识。
本实施例可以开启相应的服务来为数据文档设置文档标识,且本实施例为数据文档所设置的文档标识可以具体为UUID(Universally Unique Identifier,通用唯一标识码)。本实施例不限制文档标识的具体表现形式,只要文档标识能够唯一标识出一个数据文档即可。
本实施例可以开启相应的服务来从数据文档中获取用于构建索引的信息,且本实施例可以根据预先设置的配置文件从数据文档中获取相应的用于构建索引的信息,例如,预先设置的配置文件中包含有多个索引字段,本实施例可以根据配置文件中所包含的所有索引字段确定出数据文档中包含有哪些索引字段;再例如,预先设置的配置文件中包含有用于构建索引的信息的结构信息,该结构信息主要用于描述用于构建索引的信息所应包含的内容,如用于构建索引的信息可以包含有摘要(如数据文档的开头部分)、数据文档的产生时间以及数据文档对应的用户信息等等,本实施例可以根据配置文件中的用于构建索引的信息的结构信息从数据文档中获得相应的信息,以形成用于构建索引的信息。
本实施例中的配置文件中所包含的索引字段以及用于构建索引的信息的结构信息可以根据实际需求来设置。本实施例不限制配置文件中所包含的具体的内容。
S120、根据上述获得的用于构建索引的信息以及文档标识在搜索引擎服务系统中为数据文档构建索引。
具体的,本实施例中的搜索引擎服务系统主要包括:多台基于SSD(Solid StateDrives,固态硬盘)的服务器(即搜索引擎服务器),且多台基于SSD的服务器可以形成一个搜索引擎集群。本实施例中的搜索引擎服务系统可以被认为是一个搜索引擎服务器集合,该搜索引擎服务器集合中包含有多台设置有索引的搜索引擎服务器(如十几台或者几十台搜索引擎服务器),且每台搜索引擎服务器中均设置有固态硬盘。
本实施例的搜索引擎服务系统所包含的基于SSD的服务器的数量可以根据预先为索引系统所设定的数据承受能力以及基于SSD的服务器的具体配置来设计,例如,在数据文档的数据量为1PB级别的应用环境中,通常构建出的索引的数据量大约为300TB,如果每一台基于SSD的服务器所采用硬盘的存储空间为12×800G,则需要为搜索引擎服务系统配置32台基于SSD的服务器。作为示例,本实施例的基于SSD的服务器的内存通常不应低于192G。
本实施例可以将用于构建索引的信息以及文档标识发送给搜索引擎服务系统中的一台基于SSD的服务器,以在该基于SSD的服务器中为数据文档构建索引。作为示例,本实施例可以根据文档标识从多台基于SSD的服务器中选择一台基于SSD的服务器,如对文档标识进行哈希运算,以根据哈希运算结果确定一台基于SSD的服务器,并向该台基于SSD的服务器发送上述获得的用于构建索引的信息以及文档标识。
本实施例可以根据用于构建索引的信息以及文档标识采用现有的索引构建方式在基于SSD的服务器中为数据文档构建索引,且为数据文档构建的索引可以设置于相应的基于SSD的服务器的倒排索引表中。本实施例不限制在基于SSD的服务器中为数据文档构建索引的具体实现方式以及构建出的索引的存储方式。
S130、将数据文档和文档标识存储于数据存储服务系统中。
具体的,本实施例中的数据存储服务系统主要包括:多台基于HDD(Hard DiskDrive,硬盘驱动器,即机械硬盘)的服务器,且多台基于HDD的服务器可以形成一个数据存储服务集群。本实施例中的数据存储服务系统可以被认为是一个数据存储服务器集合,该数据存储服务器集合中包含有多台存储有海量的数据文档的数据存储服务器(如十几台或者几十台数据存储服务器),且每台数据存储服务器中均设置有硬盘驱动器/机械硬盘。
本实施例的数据存储服务系统所包含的基于HDD的服务器的数量可以根据预先为索引系统所设定的数据承受能力以及基于HDD的服务器的具体配置来设计,例如,在数据文档的数据量为1PB级别的应用环境中,如果每一台基于HDD的服务器所采用硬盘的存储空间为12×4T,则需要为数据存储服务系统配置22台基于HDD的服务器。作为示例,本实施例的基于HDD的服务器的内存通常不高于128G。
本实施例可以将数据文档及其文档标识发送给数据存储服务系统中的一台基于HDD的服务器,以将该数据文档及其文档标识存储在该基于HDD的服务器中。作为示例,本实施例可以根据文档标识从多台基于HDD的服务器中选择一台基于HDD的服务器,如对文档标识进行哈希运算,以根据哈希运算结果确定一台基于HDD的服务器,并向该台基于HDD的服务器发送上述获得的数据文档及其文档标识。
本实施例可以采用现有的存储方式将数据文档及其文档标识存储于基于HDD的服务器中,如本实施例可以采用键值方式将数据文档及其文档标识存储于基于HDD的服务器中的数据库中,且基于HDD的服务器中的数据库可以具体为HBase、Cassandra及Mongo等基于键值的数据库,从而本实施例的数据存储服务系统采用了分布式的基于键值的数据库。本实施例不限制在基于HDD的服务器中的用于存储数据文档及其文档标识的数据库的具体表现形式。
需要说明的是,上述S120虽然是先于S130描述的,然而,这并不表示S120必须在S130之前执行,在实际应用中,S120和S130可以并行执行,且S130也可以先于S120执行。
在数据文档的数据量为1PB级别的应用环境中,在构建出的索引的数据量大约为300TB的情况下,如果搜索引擎服务系统所包含的基于SSD的服务器采用存储空间为12×800G的硬盘,且数据存储服务系统所包含的基于HDD的服务器采用存储空间为12×4T的硬盘,则本实施例可以利用32台基于SSD的服务器形成搜索引擎服务系统,并利用22台基于HDD的服务器形成数据存储服务系统,即本实施例的索引系统由32台基于SSD的服务器以及22台基于HDD的服务器形成;然而,在实际应用中,如果使用基于SSD的服务器来形成索引系统,则至少需要136台基于SSD的服务器,该索引系统的实现方式虽然可以保证索引系统的搜索性能,但是,会使索引系统具有较高的实现成本;而如果使用基于HDD的服务器来形成索引系统,则至少需要28台基于HDD的服务器,该索引系统的实现方虽然可以使索引系统具有较低的实现成本,但是,会使索引系统具有较差的索引性能。与上述两种实际应用中的实现方式相比较而言,本实施例可以使索引系统的实现成本为第一种实现方式的三分之一,且其搜索性能与第一种实现方式基于相同(如仅增加了一次哈希运算以及网络数据访问),同时,本实施例还可以使索引系统的搜索性能远远高于第二种实现方式的搜索性能,如搜索响应时间可以仅为第二种实现方式的1/3,而服务访问损耗比高配方案仅增加了一次使用分布式Hash定位以及一次网络IO。由此可知,本实施例在保证了索引系统具有良好的搜索性能的同时,使索引系统的实现成本得到了一定的控制。
实施例二、索引系统的构建方法。
图2为本实施例的索引系统的构建方法的时序图。下面对图2中的各步骤分别进行详细描述。
S200、数据同步服务通过流量抓取等方式从数据源处获取原始数据文档。
S210、数据同步服务将其获取到的原始数据文档发送给数据清洗服务。
S220、数据清洗服务为接收到的原始数据文档分配UUID,并对UUID进行哈希运算。
S230、数据清洗服务从原始数据文档中提取数据文档的开头部分、时间以及相应的用户信息等等用于构建索引的信息,并在搜索引擎集群中确定出上述哈希运算结果所对应的搜索引擎服务器,然后,数据清洗服务将UUID和用于构建索引的信息一起发送给搜索引擎集群中的该搜索引擎服务器。
S240、搜索引擎集群中的接收到UUID和用于构建索引的信息的搜索引擎服务器利用UUID和用于构建索引的信息为数据文档构建相应的索引,并将构建的索引设置于倒排索引表中。
S250、数据清洗服务在数据存储服务集群中确定出上述哈希运算结果所对应的数据存储服务器,然后,数据清洗服务将UUID和数据文档发送给数据存储服务集群中的该数据存储服务器。
S260、数据存储服务集群中的接收到UUID和数据文档的数据存储服务器将其接收到的数据存储服务集群中的该数据存储服务器存储于其HBase数据库中。
需要说明的是,上述S230虽然是先于S250描述的,然而,这并不表示S230必须在S250之前执行,在实际应用中,S230和S250可以并行执行,S250也可以先于S230执行。
实施例三、搜索的实现方法。
图3为本实施例的搜索的实现方法流程图。如图3所示,本实施例的方法主要包括:步骤S300、步骤S310、步骤S320以及步骤S330。本实施例所记载的方法通常是在网络设备中被执行的,优选的,本实施例所记载的方法通常是在搜索引擎服务的网络侧的网络设备中执行。
下面对图3中的各步骤分别进行详细描述。
S300、从接收到的搜索请求中获取搜索关键词。
具体的,本实施例中的搜索请求可以是搜索引擎客户端发送来的包含有搜索关键词的搜索请求,如搜索引擎客户端通过其搜索输入框接收用户输入的搜索关键词,并针对该搜索关键词形成搜索请求,然后,向搜索引擎网络端发送该搜索请求,从而使搜索引擎网络端可以根据接收到的搜索请求承载的信息中获取到搜索关键词。
S310、根据搜索引擎服务系统中构建的索引获取搜索关键词对应的索引。
具体的,本实施例中的搜索引擎服务系统主要包括:多台基于SSD的服务器(即搜索引擎服务器),且多台基于SSD的服务器可以形成一个搜索引擎集群。本实施例中的搜索引擎服务系统可以被认为是一个搜索引擎服务器集合,该搜索引擎服务器集合中包含有多台设置有索引的搜索引擎服务器(如十几台或者几十台搜索引擎服务器),且每台搜索引擎服务器中均设置有固态硬盘。
本实施例的搜索引擎服务系统所包含的搜索引擎服务器的数量可以根据预先为索引系统所设定的数据承受能力以及搜索引擎服务器的具体配置来设计,例如,在数据文档的数据量为1PB级别的应用环境中,通常构建出的索引的数据量大约为300TB,如果每一台搜索引擎服务器所采用硬盘的存储空间为12×800G,则需要为搜索引擎服务系统配置32台搜索引擎服务器。作为示例,本实施例的搜索引擎服务器的内存通常不应低于192G。
本实施例的搜索引擎服务系统中的每一台搜索引擎服务器中均构建有索引,且每台搜索引擎服务器中设置的索引是利用上述实施例一所记载的方法构建的,如每台搜索引擎服务器中均设置有倒排索引表等。
本实施例可以将获取到的搜索关键词发送给搜索引擎服务系统中的每台搜索引擎服务器,从而使每台搜索引擎服务器均根据其内部已经构建的索引查找到搜索关键词所对应的索引;各台搜索引擎服务器可以将其各自查找到的索引汇集在一起,如根据预定策略推举出一台搜索引擎服务器(下述简称为主搜索引擎服务器)中,并将其各自查找到的索引汇集到该台主搜索引擎服务器中;本实施例可以对被汇集在一起的搜索关键词所对应的所有索引进行筛选以及排序处理等操作(如主搜索引擎服务器执行筛选以及排序处理等操作),以选取出该搜索关键词最终对应的预定数量的索引,如从汇集在一起的所有索引中选取出搜索关键词对应的十个索引等。另外,主搜索引擎服务器可以根据其选取出的索引中的文档标识形成文档标识列表,以便于后续可以根据该文档标识列表来获取对应的数据文档。
S320、根据搜索关键词对应的索引中的文档标识从数据存储服务系统中获取相应的数据文档。
具体的,本实施例可以对搜索关键词对应的各索引中的文档标识分别进行哈希运算,并根据各哈希运算结果分别确定各文档标识所对应的基于HDD的服务器(即数据存储服务器,如设置有基于键值的数据库的数据存储服务器),以便于可以从相应的数据存储服务器中获取到文档标识所对应的数据文档;即本实施例可以对上述S310最终选取出的预定数量的索引中的文档标识分别进行哈希运算,从而可以根据哈希运算结果确定出每一个文档标识各自对应的基于HDD的服务器,然后,向相应的基于HDD的服务器分别发送包含有文档标识的数据文档请求,从而可以从相应的基于HDD的服务器返回的响应消息中获得相应的文档标识对应的数据文档。
本实施例也可以采用其他方式来确定文档标识对应的基于HDD的服务器,如根据预先记录的两者之间的对应关系来确定文档标识对应的基于HDD的服务器等,其中,预先记录的两者之间的对应关系可以是在索引系统的构建过程中为数据文档分配基于HDD的服务器时记录的。
S330、根据获取的数据文档形成搜索请求的搜索结果。
具体的,本实施例应对获取到的所有数据文档进行整理,以形成搜索请求的搜索结果,如对各基于HDD的服务器返回的数据文档进行顺序编排,并形成向搜索请求的发送方返回的搜索响应消息等。本实施例不限制根据数据文档形成搜索请求的搜索结果的具体实现过程。
实施例四、搜索的实现方法。
图4为本实施例的搜索的实现方法的时序图。下面对图4中的各步骤分别进行详细描述。
S400、搜索WEB应用在通过其搜索关键词输入框接收到用户输入的搜索关键词之后,基于该搜索关键词形成搜索请求,并向网络侧发送该包含有搜索关键词的搜索请求。
S410、位于网络侧的搜索数据应用在接收到搜索请求后,向搜索引擎集群中的每一台搜索引擎服务器发送数据请求,以请求访问搜索引擎集群向其返回数据请求中的搜索关键词对应的UUID列表。
S420、搜索引擎集群中的各搜索引擎服务器接收到数据请求后,从数据请求中获取搜索关键词,并根据其内部构建的索引获得该搜索关键词对应的索引,各搜索引擎服务器将其获得的与搜索关键词对应的索引发送给其中一台搜索引擎服务器(如共同推举出来的主搜索引擎服务器),由该台搜索引擎服务器(如主搜索引擎服务器)从中挑选出预定数量的索引,并基于挑选出的索引中的UUID形成UUID列表,将UUID列表返回给搜索数据应用。
S430、搜索数据应用在接收到UUID列表之后,针对UUID列表中的每一个UUID分别进行哈希运算,并根据各哈希运算结果确定各UUID所对应的数据存储服务集群中的数据存储服务器,之后,搜索数据应用向确定出的各数据存储服务器分别发送携带有相应的UUID的数据文档请求,以请求相应的数据存储服务器向其返回UUID对应的数据文档。
S440、数据存储服务集群中的接收到数据文档请求的数据存储服务器从数据文档请求中获取UUID(可以为一个UUID或者多个UUID),并在其HBase数据库所存储的信息中查找UUID对应的数据文档,之后,数据存储服务器向搜索数据应用返回包含有数据文档的响应消息。
S450、搜索数据应用从各数据存储服务器返回的响应消息中获取数据文档,并对数据文档进行汇总整理以形成搜索关键词对应的搜索结果。
S460、搜索数据应用向搜索Web应用返回基于搜索关键词的搜索响应消息,搜索Web应用根据接收到的搜索响应消息向用户展示搜索关键词对应的搜索结果。
实施例五、索引系统的构建装置。
图5为本实施例的索引系统的构建装置示意图。如图5所示,本实施例的装置主要包括:文档获取模块500、标识及获取模块510、构建索引模块520以及存储处理模块530。本实施例所记载的索引系统的构建装置通常设置于网络设备中,优选的,本实施例所记载的装置通常是设置于用于搜索的数据的管理方/提供方侧的网络设备中。
下面结合图5-图9对本实施例的索引系统的构建装置的结构进行说明。
文档获取模块500主要用于获取需要进行索引处理的数据文档。
具体的,文档获取模块500所获取的需要进行索引处理的数据文档是指需要设置于索引系统中的数据文档(也即需要添加到索引系统中的数据文档),且本实施例中的索引系统主要包括:搜索引擎服务系统以及数据存储服务系统。为方便描述,在下述实施例中,将文档获取模块500获取的需要进行索引处理的数据文档简称为原始数据文档。
对于采用本实施例的索引系统的构建方法的使用者(即上述用于搜索的数据的管理方/提供方)而言,文档获取模块500所获取的原始数据文档可以是使用者的内部数据文档,如网络终端用户通过与管理方/提供方所提供的网站进行信息交互而产生的数据文档即为该管理方/提供方的内部数据文档。
对于采用本实施例的索引系统的构建方法的使用者(即上述用于搜索的数据的管理方/提供方)而言,文档获取模块500所获取的原始数据文档也可以是使用者的外部数据文档,如用户通过与除了管理方/提供方提供的网站之外的其他网站进行信息交互而产生的数据文档即为该管理方/提供方的外部数据文档。
文档获取模块500可以开启相应的服务以获取原始数据文档,且文档获取模块500可以通过多种方式获取原始数据文档,例如对于内部数据文档而言,文档获取模块500可以通过流量包抓取等方式获取到原始数据文档;再例如对于外部数据文档而言,文档获取模块500可以通过网络爬取等方式从互联网中爬取到不同类型的数据源的原始数据文档。上述数据源的类型可以为微博类型的数据源或者新闻类型的数据源或者电子商务类型的数据源等。
本实施例不限制文档获取模块500获取原始数据文档的具体实现方式以及文档获取模块500获取到的原始数据文档的具体表现形式。
标识及获取模块510主要用于为数据文档设置用于唯一标识数据文档的文档标识,并从数据文档中获取用于构建索引的信息;该标识及获取模块510可以可选的包括:标识分配子模块511和信息获取子模块512(如图6和图7所示);其中的标识分配子模块511主要用于为数据文档设置通用唯一标识码UUID;其中的信息获取子模块512主要用于根据预置的配置文件中的各索引字段以及用于构建索引的信息的结构信息从数据文档中获取用于构建索引的信息。
具体的,标识及获取模块510为数据文档所设置的文档标识主要用于标识数据文档,由于标识及获取模块510从一个数据文档中获取到的用于构建索引的信息是与该数据文档相对应的,因此,标识及获取模块510从数据文档中获取到的用于构建索引的信息、标识及获取模块510为数据文档设置的文档标识以及数据文档之间存在一一对应关系,即一个文档标识仅对应一个数据文档以及从该数据文档中获取到的用于构建索引的信息,而一个数据文档以及从该数据文档获取到的用于构建索引的信息也仅对应同一个文档标识。
标识及获取模块510(如标识分配子模块511)可以开启相应的服务来为数据文档设置相应的文档标识,且标识及获取模块510(如标识分配子模块511)为数据文档所设置的文档标识可以具体为UUID。本实施例不限制标识及获取模块510设置的文档标识的具体表现形式,只要文档标识能够唯一标识出一个数据文档即可。
标识及获取模块510(如信息获取子模块512)可以开启相应的服务来从数据文档中获取用于构建索引的信息,且标识及获取模块510(如信息获取子模块512)可以根据预先设置的配置文件从数据文档中获取相应的用于构建索引的信息,例如,预先设置的配置文件中包含有多个索引字段,标识及获取模块510(如信息获取子模块512)以根据配置文件中所包含的所有索引字段确定出数据文档中包含有哪些索引字段;再例如,预先设置的配置文件中包含有用于构建索引的信息的结构信息,该结构信息主要用于描述用于构建索引的信息所应包含的内容,如用于构建索引的信息可以包含有摘要(如数据文档的开头部分)、数据文档的产生时间以及数据文档对应的用户信息等等,标识及获取模块510(如信息获取子模块512)可以根据配置文件中的用于构建索引的信息的结构信息从数据文档中获得相应的信息,以形成用于构建索引的信息。
本实施例中的配置文件中所包含的索引字段以及用于构建索引的信息的结构信息可以根据实际需求来设置。本实施例不限制配置文件中所包含的具体的内容。
构建索引模块520主要用于根据用于构建索引的信息以及文档标识在搜索引擎服务系统中为数据文档构建索引;该构建索引模块520可以可选的包括:哈希运算子模块521、第一确定子模块522以及构建索引子模块523(具体如图8所示);其中的哈希运算子模块521主要用于对文档标识进行哈希运算;其中的第一确定子模块主要用于根据哈希运算的结果确定所述数据文档对应的基于固态硬盘的服务器;其中的构建索引子模块主要用于根据用于构建索引的信息以及文档标识在对应的基于固态硬盘的服务器中为数据文档构建索引。
具体的,本实施例中的搜索引擎服务系统主要包括:多台基于SSD的服务器(即搜索引擎服务器),且多台基于SSD的服务器可以形成一个搜索引擎集群。本实施例中的搜索引擎服务系统可以被认为是一个搜索引擎服务器集合,该搜索引擎服务器集合中包含有多台设置有索引的搜索引擎服务器(如十几台或者几十台搜索引擎服务器),且每台搜索引擎服务器中均设置有固态硬盘。
本实施例的搜索引擎服务系统所包含的基于SSD的服务器的数量可以根据预先为索引系统所设定的数据承受能力以及基于SSD的服务器的具体配置来设计,例如,在数据文档的数据量为1PB级别的应用环境中,通常构建出的索引的数据量大约为300TB,如果每一台基于SSD的服务器所采用硬盘的存储空间为12×800G,则需要为搜索引擎服务系统配置32台基于SSD的服务器。作为示例,本实施例的基于SSD的服务器的内存通常不应低于192G。
构建索引模块520可以将用于构建索引的信息以及文档标识发送给搜索引擎服务系统中的一台基于SSD的服务器,以在该基于SSD的服务器中为数据文档构建索引。作为示例,构建索引模块520可以根据文档标识从多台基于SSD的服务器中选择一台基于SSD的服务器,如构建索引模块520(如哈希运算子模块521)对文档标识进行哈希运算,构建索引模块520(如第一确定子模块522)根据哈希运算结果确定一台基于SSD的服务器,构建索引模块520(如第一确定子模块522)向该台基于SSD的服务器发送上述获得的用于构建索引的信息以及文档标识。
构建索引模块520(如构建索引子模块523)可以根据用于构建索引的信息以及文档标识采用现有的索引构建方式在基于SSD的服务器中为数据文档构建索引,且为数据文档构建的索引可以设置于相应的基于SSD的服务器的倒排索引表中。本实施例不限制构建索引模块520(如构建索引子模块523)在基于SSD的服务器中为数据文档构建索引的具体实现方式以及构建出的索引的存储方式。
存储处理模块530主要用于将数据文档和文档标识存储于数据存储服务系统中;该存储处理模块可以可选的包括:哈希运算子模块531、第二确定子模块532以及存储处理子模块533(如图9所示);其中的哈希运算子模块531主要用于对文档标识进行哈希运算;其中的第二确定子模块532主要用于根据哈希运算的结果确定数据文档对应的基于机械硬盘的服务器;其中的存储处理子模块533主要用于将数据文档和文档标识存储于数据文档对应的基于机械硬盘的服务器中。
具体的,本实施例中的数据存储服务系统主要包括:多台基于HDD的服务器,且多台基于HDD的服务器可以形成一个数据存储服务集群。本实施例中的数据存储服务系统可以被认为是一个数据存储服务器集合,该数据存储服务器集合中包含有多台存储有海量的数据文档的数据存储服务器(如十几台或者几十台数据存储服务器),且每台数据存储服务器中均设置有硬盘驱动器/机械硬盘。
本实施例的数据存储服务系统所包含的基于HDD的服务器的数量可以根据预先为索引系统所设定的数据承受能力以及基于HDD的服务器的具体配置来设计,例如,在数据文档的数据量为1PB级别的应用环境中,如果每一台基于HDD的服务器所采用硬盘的存储空间为12×4T,则需要为数据存储服务系统配置22台基于HDD的服务器。作为示例,本实施例的基于HDD的服务器的内存通常不高于128G。
存储处理模块530可以将数据文档及其文档标识发送给数据存储服务系统中的一台基于HDD的服务器,以将该数据文档及其文档标识存储在该基于HDD的服务器中。作为示例,存储处理模块530可以根据文档标识从多台基于HDD的服务器中选择一台基于HDD的服务器,如存储处理模块530(如哈希运算子模块531)对文档标识进行哈希运算,存储处理模块530(如第二确定子模块532)根据哈希运算结果确定一台基于HDD的服务器,存储处理模块530(如第二确定子模块532)向该台基于HDD的服务器发送上述获得的数据文档及其文档标识。
存储处理模块530(如存储处理子模块533)可以采用现有的存储方式将数据文档及其文档标识存储于基于HDD的服务器中,如存储处理模块530(如存储处理子模块533)可以采用键值方式将数据文档及其文档标识存储于基于HDD的服务器中的数据库中,且基于HDD的服务器中的数据库可以具体为HBase、Cassandra及Mongo等基于键值的数据库,从而本实施例的数据存储服务系统采用了分布式的基于键值的数据库。本实施例不限制在基于HDD的服务器中的用于存储数据文档及其文档标识的数据库的具体表现形式。
需要说明的是,上述构建索引模块520虽然是先于存储处理模块530描述的,然而,这并不表示构建索引模块520所执行的操作必须先于存储处理模块530所执行的操作,在实际应用中,构建索引模块520和存储处理模块530可以并行执行各自的操作,且存储处理模块530所执行的操作也可以先于构建索引模块520所执行的操作。
实施例六、搜索的实现装置。
图10为本实施例的搜索的实现装置的结构示意图。如图10所示,本实施例的装置主要包括:关键词获取模块600、索引获取模块610、数据文档获取模块620以及搜索结果形成模块630。本实施例所记载的装置通常是设置于网络设备中,优选的,本实施例所记载的装置通常是设置于搜索引擎服务的网络侧的网络设备中。
下面结合图10-图12对装置中的各模块分别进行详细描述。
关键词获取模块600主要用于从接收到的搜索请求中获取搜索关键词。
具体的,关键词获取模块600接收到的搜索请求可以是搜索引擎客户端发送来的包含有搜索关键词的搜索请求,例如,搜索引擎客户端通过其搜索输入框接收用户输入的搜索关键词,并针对该搜索关键词形成搜索请求,然后,向搜索引擎网络端发送该搜索请求,从而使设置于搜索引擎网络端的关键词获取模块600可以根据接收到的搜索请求承载的信息中获取到搜索关键词。
索引获取模块610主要用于根据搜索引擎服务系统中构建的索引获取搜索关键词对应的索引;且该索引获取模块610可以可选的包括:发送子模块611、汇总子模块612以及选取子模块613(如图11所示);其中的发送子模块611主要用于将搜索关键词发送给多台基于固态硬盘的服务器,发送子模块611独立于基于固态硬盘的服务器设置;其中的汇总子模块612主要用于汇总多台基于固态硬盘的服务器分别根据其各自构建的索引而获取到的搜索关键词对应的索引,每一台基于固态硬盘的服务器可以均设置有一个汇总子模块612;其中的选取子模块613主要用于从汇总的索引中选取出至少一个索引,并将选取出的索引作为搜索关键词对应的索引,每一台基于固态硬盘的服务器可以均设置有一个选取子模块613。
具体的,本实施例中的搜索引擎服务系统主要包括:多台基于SSD的服务器(即搜索引擎服务器),且多台基于SSD的服务器可以形成一个搜索引擎集群。本实施例中的搜索引擎服务系统可以被认为是一个搜索引擎服务器集合,该搜索引擎服务器集合中包含有多台设置有索引的搜索引擎服务器(如十几台或者几十台搜索引擎服务器),且每台搜索引擎服务器中均设置有固态硬盘。
本实施例的搜索引擎服务系统所包含的搜索引擎服务器的数量可以根据预先为索引系统所设定的数据承受能力以及搜索引擎服务器的具体配置来设计,例如,在数据文档的数据量为1PB级别的应用环境中,通常构建出的索引的数据量大约为300TB,如果每一台搜索引擎服务器所采用硬盘的存储空间为12×800G,则需要为搜索引擎服务系统配置32台搜索引擎服务器。作为示例,本实施例的搜索引擎服务器的内存通常不应低于192G。
本实施例的搜索引擎服务系统中的每一台搜索引擎服务器中均构建有索引,且每台搜索引擎服务器中设置的索引是利用上述实施例五所记载的装置构建的,如每台搜索引擎服务器中均设置有倒排索引表等。
索引获取模块610(如发送子模块611)可以将获取到的搜索关键词发送给搜索引擎服务系统中的每台搜索引擎服务器,从而使每台搜索引擎服务器均根据其内部已经构建的索引查找到搜索关键词所对应的索引;索引获取模块610(如汇总子模块612)可以将各台搜索引擎服务器各自查找到的索引汇集在一起,如索引获取模块610(如汇总子模块612)根据预定策略推举出一台搜索引擎服务器(下述简称为主搜索引擎服务器)中,索引获取模块610(如汇总子模块612)将各搜索引擎服务器各自查找到的索引汇集到该台主搜索引擎服务器中;索引获取模块610(如选取子模块613)可以对被汇集在一起的搜索关键词所对应的所有索引进行筛选以及排序处理等操作(如设置于主搜索引擎服务器中的选取子模块613执行筛选及排序处理等操作),以选取出该搜索关键词最终对应的预定数量的索引,如索引获取模块610(如选取子模块613)从汇集在一起的所有索引中选取出搜索关键词对应的十个索引等。另外,设置于主搜索引擎服务器中的选取子模块613可以根据其选取出的索引中的文档标识形成文档标识列表,以便于后续数据文档获取模块620可以根据该文档标识列表来获取对应的数据文档。
数据文档获取模块620主要用于根据搜索关键词对应的索引中的文档标识从数据存储服务系统中获取相应的数据文档;且该数据文档获取模块620可以可选的包括:哈希运算子模块621、第三确定子模块622以及文档获取子模块623(如图12所示);其中的哈希运算子模块621主要用于对搜索关键词对应的各索引中的文档标识分别进行哈希运算;其中的第三确定子模块622主要用于根据各哈希运算的结果确定各索引中的文档标识各自对应的基于机械硬盘的服务器;其中的文档获取子模块623主要用于从各索引中的文档标识各自对应的基于机械硬盘的服务器中获取相应的数据文档。
具体的,数据文档获取模块620(如哈希运算子模块621)可以对搜索关键词对应的各索引中的文档标识分别进行哈希运算,数据文档获取模块620(如第三确定子模块622)根据各哈希运算结果分别确定各文档标识所对应的基于HDD的服务器(即数据存储服务器,如设置有基于键值的数据库的数据存储服务器),以便于数据文档获取模块620(如文档获取子模块623)可以从相应的数据存储服务器中获取到文档标识所对应的数据文档;即数据文档获取模块620(如哈希运算子模块621)可以对上述索引获取模块610(如选取子模块613)最终选取出的预定数量的索引中的文档标识分别进行哈希运算,从而数据文档获取模块620(如第三确定子模块622)可以根据哈希运算结果确定出每一个文档标识各自对应的基于HDD的服务器,然后,数据文档获取模块620(如文档获取子模块623)向相应的基于HDD的服务器分别发送包含有文档标识的数据文档请求,从而数据文档获取模块620(如文档获取子模块623)可以从相应的基于HDD的服务器返回的响应消息中获得相应的文档标识对应的数据文档。
数据文档获取模块620也可以采用其他方式来确定文档标识对应的基于HDD的服务器,如数据文档获取模块620根据预先记录的两者之间的对应关系来确定文档标识对应的基于HDD的服务器等,其中,且该预先记录的两者之间的对应关系可以是在索引系统的构建过程中为数据文档分配基于HDD的服务器时记录的。
搜索结果形成模块630主要用于根据获取的数据文档形成搜索请求的搜索结果。
具体的,搜索结果形成模块630应对其获取到的所有数据文档进行汇总整理,以形成搜索请求的搜索结果,如搜索结果形成模块630对各基于HDD的服务器返回的数据文档进行顺序编排,并形成向搜索请求的发送方返回的搜索响应消息等。本实施例不限制搜索结果形成模块630根据数据文档形成搜索请求的搜索结果的具体实现过程。
需要注意的是,本发明的一部分可以被应用为计算机程序产品,例如计算机程序指令,当其被智能电子设备(如计算机或者服务器等)执行时,通过该智能电子设备的操作可以调用或者提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或者其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的智能电子设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明并不局限于上述示范性实施例的细节,而且在不背离本发明的精神或者基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将本发明的实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或者装置或者模块也可以由一个单元或者装置或者模块通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (12)
1.一种索引系统的构建方法,其中,所述方法包括以下步骤:
获取需要进行索引处理的数据文档;
为所述数据文档设置用于唯一标识数据文档的文档标识,并从所述数据文档中获取用于构建索引的信息;
根据所述用于构建索引的信息以及文档标识在搜索引擎服务系统中为所述数据文档构建索引;
将所述数据文档和文档标识存储于数据存储服务系统中;
其中,所述搜索引擎服务系统包括多台基于固态硬盘的服务器,所述数据存储服务系统包括多台基于机械硬盘的服务器;
所述根据所述用于构建索引的信息以及文档标识在搜索引擎服务系统中为所述数据文档构建索引的步骤包括:
对所述文档标识进行哈希运算;
根据哈希运算的结果确定所述数据文档对应的基于固态硬盘的服务器;
根据所述用于构建索引的信息以及文档标识在所述对应的基于固态硬盘的服务器中为所述数据文档构建索引;
所述将所述数据文档和文档标识存储于数据存储服务系统中的步骤包括:
对所述文档标识进行哈希运算;
根据哈希运算的结果确定所述数据文档对应的基于机械硬盘的服务器;
将所述数据文档和文档标识存储于所述数据文档对应的基于机械硬盘的服务器中。
2.根据权利要求1所述的方法,其中,所述为所述数据文档设置用于唯一标识数据文档的文档标识的步骤包括:
为所述数据文档设置通用唯一标识码UUID。
3.根据权利要求1所述的方法,其中,所述从所述数据文档中获取用于构建索引的信息的步骤包括:
根据预置的配置文件中的各索引字段以及用于构建索引的信息的结构信息从所述数据文档中获取用于构建索引的信息。
4.根据权利要求1至3中任一权利要求所述的方法,其中,所述数据文档和文档标识以键值方式存储于基于机械硬盘的服务器中的数据库中。
5.一种搜索的实现方法,其中,所述方法包括以下步骤:
从接收到的搜索请求中获取搜索关键词;
根据搜索引擎服务系统中构建的索引获取所述搜索关键词对应的索引;
根据所述搜索关键词对应的索引中的文档标识从数据存储服务系统中获取相应的数据文档;
根据所述获取的数据文档形成所述搜索请求的搜索结果;
其中,所述搜索引擎服务系统包括多台基于固态硬盘的服务器,所述数据存储服务系统包括多台基于机械硬盘的服务器;
所述根据所述搜索关键词对应的索引中的文档标识从数据存储服务系统中获取相应的数据文档的步骤包括:
对所述搜索关键词对应的各索引中的文档标识分别进行哈希运算;
根据各哈希运算的结果确定所述各索引中的文档标识各自对应的基于机械硬盘的服务器;
从所述各索引中的文档标识各自对应的基于机械硬盘的服务器中获取相应的数据文档。
6.根据权利要求5所述的方法,其中,所述根据搜索引擎服务系统中构建的索引获取所述搜索关键词对应的索引的步骤包括:
将所述搜索关键词发送给多台基于固态硬盘的服务器,并汇总多台基于固态硬盘的服务器分别根据其各自构建的索引而获取到的所述搜索关键词对应的索引;
从所述汇总的索引中选取出至少一个索引,并将选取出的索引作为所述搜索关键词对应的索引。
7.一种实现索引的实现装置,其中,所述装置包括:
文档获取模块,用于获取需要进行索引处理的数据文档;
标识及获取模块,用于为所述数据文档设置用于唯一标识数据文档的文档标识,并从所述数据文档中获取用于构建索引的信息;
构建索引模块,用于根据所述用于构建索引的信息以及文档标识在搜索引擎服务系统中为所述数据文档构建索引;
存储处理模块,用于将所述数据文档和文档标识存储于数据存储服务系统中;
其中,所述搜索引擎服务系统包括多台基于固态硬盘的服务器,所述数据存储服务系统包括多台基于机械硬盘的服务器;
所述构建索引模块包括:
哈希运算子模块,用于对所述文档标识进行哈希运算;
第一确定子模块,用于根据哈希运算的结果确定所述数据文档对应的基于固态硬盘的服务器;
构建索引子模块,用于根据所述用于构建索引的信息以及文档标识在所述对应的基于固态硬盘的服务器中为所述数据文档构建索引;
所述存储处理模块包括:
哈希运算子模块,用于对所述文档标识进行哈希运算;
第二确定子模块,用于根据哈希运算的结果确定所述数据文档对应的基于机械硬盘的服务器;
存储处理子模块,用于将所述数据文档和文档标识存储于所述数据文档对应的基于机械硬盘的服务器中。
8.根据权利要求7所述的装置,其中,所述标识及获取模块包括:
标识分配子模块,用于为所述数据文档设置通用唯一标识码UUID。
9.根据权利要求7所述的装置,其中,所述标识及获取模块包括:
信息获取子模块,用于根据预置的配置文件中的各索引字段以及用于构建索引的信息的结构信息从所述数据文档中获取用于构建索引的信息。
10.根据权利要求7至9中任一权利要求所述的装置,其中,所述数据文档和文档标识以键值方式存储于基于机械硬盘的服务器中的数据库中。
11.一种搜索的实现装置,其中,所述装置包括:
关键词获取模块,用于从接收到的搜索请求中获取搜索关键词;
索引获取模块,用于根据搜索引擎服务系统中构建的索引获取所述搜索关键词对应的索引;
数据文档获取模块,用于根据所述搜索关键词对应的索引中的文档标识从数据存储服务系统中获取相应的数据文档;
搜索结果形成模块,用于根据所述获取的数据文档形成所述搜索请求的搜索结果;
其中,所述搜索引擎服务系统包括多台基于固态硬盘的服务器,所述数据存储服务系统包括多台基于机械硬盘的服务器;
所述数据文档获取模块包括:
哈希运算子模块,用于对所述搜索关键词对应的各索引中的文档标识分别进行哈希运算;
第三确定子模块,用于根据各哈希运算的结果确定所述各索引中的文档标识各自对应的基于机械硬盘的服务器;
文档获取子模块,用于从所述各索引中的文档标识各自对应的基于机械硬盘的服务器中获取相应的数据文档。
12.根据权利要求11所述的装置,其中,所述索引获取模块包括:
发送子模块,用于将所述搜索关键词发送给多台基于固态硬盘的服务器;
汇总子模块,用于汇总多台基于固态硬盘的服务器分别根据其各自构建的索引而获取到的所述搜索关键词对应的索引;
选取子模块,用于从所述汇总的索引中选取出至少一个索引,并将选取出的索引作为所述搜索关键词对应的索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610151332.9A CN107203532B (zh) | 2016-03-16 | 2016-03-16 | 索引系统的构建方法、搜索的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610151332.9A CN107203532B (zh) | 2016-03-16 | 2016-03-16 | 索引系统的构建方法、搜索的实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107203532A CN107203532A (zh) | 2017-09-26 |
CN107203532B true CN107203532B (zh) | 2021-03-16 |
Family
ID=59904154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610151332.9A Active CN107203532B (zh) | 2016-03-16 | 2016-03-16 | 索引系统的构建方法、搜索的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107203532B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669623B (zh) * | 2017-10-13 | 2021-09-03 | 杭州海康威视系统技术有限公司 | 一种文件管理方法、文件管理装置、电子设备及存储介质 |
CN108280156A (zh) * | 2018-01-12 | 2018-07-13 | 阿里巴巴集团控股有限公司 | 一种在云搜索平台中构建索引和进行搜索的方法和装置 |
CN109446301A (zh) * | 2018-09-18 | 2019-03-08 | 沈文策 | 一种相似文章的查找方法及装置 |
CN111435374B (zh) * | 2019-01-11 | 2023-04-25 | 百度在线网络技术(北京)有限公司 | 搜索统计数据的展示装置和方法 |
CN111552442A (zh) * | 2020-05-13 | 2020-08-18 | 重庆紫光华山智安科技有限公司 | 一种基于ssd的缓存管理系统及方法 |
CN112052367A (zh) * | 2020-07-23 | 2020-12-08 | 北京三快在线科技有限公司 | 一种搜索方法、装置、电子设备及存储介质 |
CN112231446A (zh) * | 2020-10-23 | 2021-01-15 | 苏州浪潮智能科技有限公司 | 一种安全防护终端数据管理方法、系统及设备和存储介质 |
CN117238433B (zh) * | 2023-11-10 | 2024-02-06 | 智业软件股份有限公司 | 基于LibreOffice进行文档数据自动隔离的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101694672A (zh) * | 2009-10-16 | 2010-04-14 | 华中科技大学 | 一种分布式安全检索系统 |
CN102436513A (zh) * | 2012-01-18 | 2012-05-02 | 中国电子科技集团公司第十五研究所 | 分布式检索方法和系统 |
CN102710761A (zh) * | 2012-05-24 | 2012-10-03 | 上海克而瑞信息技术有限公司 | 一种pdf文件在线存储和访问方法 |
CN105335510A (zh) * | 2015-10-30 | 2016-02-17 | 成都博睿德科技有限公司 | 文本数据高效搜索方法 |
-
2016
- 2016-03-16 CN CN201610151332.9A patent/CN107203532B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101694672A (zh) * | 2009-10-16 | 2010-04-14 | 华中科技大学 | 一种分布式安全检索系统 |
CN102436513A (zh) * | 2012-01-18 | 2012-05-02 | 中国电子科技集团公司第十五研究所 | 分布式检索方法和系统 |
CN102710761A (zh) * | 2012-05-24 | 2012-10-03 | 上海克而瑞信息技术有限公司 | 一种pdf文件在线存储和访问方法 |
CN105335510A (zh) * | 2015-10-30 | 2016-02-17 | 成都博睿德科技有限公司 | 文本数据高效搜索方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107203532A (zh) | 2017-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107203532B (zh) | 索引系统的构建方法、搜索的实现方法及装置 | |
US11716260B2 (en) | Hybrid execution of playbooks including custom code | |
US11327992B1 (en) | Authenticating a user to access a data intake and query system | |
US20200050586A1 (en) | Query execution at a remote heterogeneous data store of a data fabric service | |
US20210117251A1 (en) | Mobile application for an information technology (it) and security operations application | |
US11620288B2 (en) | Dynamically assigning a search head to process a query | |
US8321503B2 (en) | Context-specific network resource addressing model for distributed services | |
JP5661104B2 (ja) | 検索エンジンインデクシング及びインデックスを使用する検索のための方法とシステム | |
US11573955B1 (en) | Data-determinant query terms | |
JPH1069423A (ja) | ハイパーメディアシステムおよびそのディレクトリデータ管理方法 | |
CN102932415A (zh) | 一种镜像文件存储方法及装置 | |
US11799798B1 (en) | Generating infrastructure templates for facilitating the transmission of user data into a data intake and query system | |
US11593477B1 (en) | Expediting processing of selected events on a time-limited basis | |
CN107092686B (zh) | 一种基于云存储平台的文件管理方法及装置 | |
US11886844B1 (en) | Updating reusable custom functions across playbooks | |
US11537942B1 (en) | Machine learning-based data analyses for outlier detection | |
CN112632129A (zh) | 一种码流数据管理方法、装置及存储介质 | |
WO2013120412A1 (zh) | 数据下载方法、终端、服务器和系统 | |
US11477161B1 (en) | Systems and methods for detecting DNS communications through time-to-live analyses | |
CN104503983A (zh) | 为搜索引擎提供网站认证数据的方法及装置 | |
CN106156258B (zh) | 一种在分布式存储系统中统计数据的方法、装置及系统 | |
US11843622B1 (en) | Providing machine learning models for classifying domain names for malware detection | |
CN107256130B (zh) | 基于Cuckoo哈希计算的数据存储优化方法及系统 | |
Cao et al. | LogKV: Exploiting key-value stores for event log processing | |
CN105574037A (zh) | 一种信息处理方法及装置 |
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 |