CN110020063A - 垂直搜索方法和系统 - Google Patents

垂直搜索方法和系统 Download PDF

Info

Publication number
CN110020063A
CN110020063A CN201710586225.3A CN201710586225A CN110020063A CN 110020063 A CN110020063 A CN 110020063A CN 201710586225 A CN201710586225 A CN 201710586225A CN 110020063 A CN110020063 A CN 110020063A
Authority
CN
China
Prior art keywords
search engine
data
name
source database
field name
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
Application number
CN201710586225.3A
Other languages
English (en)
Other versions
CN110020063B (zh
Inventor
罗超
薛韬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201710586225.3A priority Critical patent/CN110020063B/zh
Publication of CN110020063A publication Critical patent/CN110020063A/zh
Application granted granted Critical
Publication of CN110020063B publication Critical patent/CN110020063B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

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)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种垂直搜索方法和系统,涉及计算机领域。该方法的一具体实施方式包括:从至少一个源数据库中的任一源数据库中确定该源数据库的多个字段名、以及与所述多个字段名中的任一字段名对应的搜索引擎字段名;基于所述搜索引擎字段名构建该源数据库的搜索引擎映射结构;获取该源数据库的更新数据,根据所述更新数据生成与所述搜索引擎字段名对应的数据,将与所述搜索引擎字段名对应的数据输入所述搜索引擎映射结构以提供搜索。该实施方式能够基于通用的搜索模型解决不同业务的垂直搜索需求,从而减少系统重复建设,快速响应业务需求。

Description

垂直搜索方法和系统
技术领域
本发明涉及计算机领域,尤其涉及一种垂直搜索方法和系统。
背景技术
随着互联网技术的快速发展,如百度、谷歌等通用搜索系统已难以针对特定领域、特定人群或特定需求提供价值较大的信息与服务。行业中一般采用垂直搜索系统来解决上述问题,垂直搜索系统是针对某一个领域的专业搜索系统,是通用搜索系统的细分和延伸,其采用专业搜索引擎对网页库中的某类专门信息进行整合,定向、分字段抽取出用户所需数据进行处理后返回给用户。例如:可以针对酒店预定、演出门票预定、体育场馆订购建立垂直搜索系统。
在现有技术中,由于不同行业、不同领域的业务特点不同,搜索条件与搜索规则差异较大,因此难以采用通用的搜索模型解决不同业务的搜索需求,一般是为不同业务搭建独立的搜索系统。同时,现有技术的搜索引擎数据更新过程一般为:通过同步程序定时从源数据库拉取数据,按照业务需求将数据硬编码到搜索字段,之后写入搜索引擎;用户通过查询程序调用搜索引擎进行搜索。
在实现本发明的过程中,发明人发现现有的垂直搜索系统至少存在以下问题:
1.在现有技术中,由于必须为不同业务搭建独立的搜索系统,因此造成大量的重复建设,同时难以快速响应业务需求;
2.现有的搜索系统由于采用硬编码的方式进行数据更新,因此其业务效率较低,同时其无法实现搜索数据的实时更新;
3.现有技术无法对不同业务的搜索服务进行统一管理:如备份、限流、降级、恶意流量拦截以及反爬虫。
发明内容
有鉴于此,本发明实施例提供一种垂直搜索方法和系统,能够基于通用的搜索模型解决不同业务的垂直搜索需求,从而减少系统重复建设,快速响应业务需求。
为实现上述目的,根据本发明的一个方面,提供了一种垂直搜索方法。
本发明实施例的垂直搜索方法包括:从至少一个源数据库中的任一源数据库中确定该源数据库的多个字段名、以及与所述多个字段名中的任一字段名对应的搜索引擎字段名;基于所述搜索引擎字段名构建该源数据库的搜索引擎映射结构;获取该源数据库的更新数据,根据所述更新数据生成与所述搜索引擎字段名对应的数据,将与所述搜索引擎字段名对应的数据输入所述搜索引擎映射结构以提供搜索。
可选地,所述方法进一步包括:为所述搜索引擎字段名配置至少一个属性参数,以构建该源数据库的搜索引擎映射结构;以及所述基于所述搜索引擎字段名构建该源数据库的搜索引擎映射结构包括:基于所述搜索引擎字段名以及为所述搜索引擎字段名配置的属性参数构建该源数据库的搜索引擎映射结构。
可选地,所述属性参数包括以下一种或多种:字段类型参数、索引参数、存储参数、分词器参数、格式参数及加权参数。
可选地,所述根据所述更新数据生成与所述搜索引擎字段名对应的数据包括:将所述更新数据转换为键值对数据,从所述键值对数据中选取键名与所述多个字段名中任一字段名相同的数据作为清洗数据;将任一清洗数据中的键名更改为与该键名对应的搜索引擎字段名,得到与所述搜索引擎字段名对应的数据。
可选地,所述方法进一步包括:根据预设的转换脚本对该清洗数据中的值进行转换,以得到与所述搜索引擎字段名对应的数据。
可选地,所述方法进一步包括:根据预设的校验规则对所述清洗数据进行校验。
可选地,所述搜索引擎映射结构为弹性搜索引擎映射结构ES Mapping,所述源数据库为MySQL,所述更新数据为二进制日志binlog数据。
为实现上述目的,根据本发明的又一方面,提供了一种的垂直搜索系统。
本发明实施例的垂直搜索系统包括:搜索模型单元,可用于从至少一个源数据库中的任一源数据库中确定该源数据库的多个字段名、以及与所述多个字段名中的任一字段名对应的搜索引擎字段名;搜索引擎单元,可用于基于所述搜索引擎字段名构建该源数据库的搜索引擎映射结构;索引单元,可用于获取该源数据库的更新数据,根据所述更新数据生成与所述搜索引擎字段名对应的数据,将与所述搜索引擎字段名对应的数据输入所述搜索引擎映射结构以提供搜索。
可选地,所述搜索模型单元进一步用于:为所述搜索引擎字段名配置至少一个属性参数,以构建该源数据库的搜索引擎映射结构;以及所述搜索引擎单元用于:基于所述搜索引擎字段名以及为所述搜索引擎字段名配置的属性参数构建该源数据库的搜索引擎映射结构。
可选地,所述属性参数包括以下一种或多种:字段类型参数、索引参数、存储参数、分词器参数、格式参数及加权参数。
可选地,所述索引单元用于:将所述更新数据转换为键值对数据,从所述键值对数据中选取键名与所述多个字段名中任一字段名相同的数据作为清洗数据;将任一清洗数据中的键名更改为与该键名对应的搜索引擎字段名,得到与所述搜索引擎字段名对应的数据。
可选地,所述索引单元进一步用于:根据在所述搜索模型单元预设的转换脚本对该清洗数据中的值进行转换,以得到与所述搜索引擎字段名对应的数据。
可选地,所述索引单元进一步用于:根据在所述搜索模型单元预设的校验规则对所述清洗数据进行校验。
可选地,所述系统进一步包括:查询单元,用于基于所述搜索引擎单元的数据、针对任一源数据库对应的业务向外提供搜索。
可选地,所述搜索引擎映射结构为弹性搜索引擎映射结构ES Mapping,所述源数据库为MySQL,所述更新数据为二进制日志binlog数据。
为实现上述目的,根据本发明的再一方面,提供了一种计算机可读存储介质。
本发明的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明所提供的垂直搜索方法。
另一方面,本申请实施例提供了一种电子设备或服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明所提供的垂直搜索方法。
根据本发明的技术方案,上述发明中的一个实施例具有如下优点或有益效果:通过建立适用于不同业务的通用搜索模型,使源数据库中的更新数据可经数据清洗、数据校验、数据转换之后自动写入搜索引擎,满足了不同业务的垂直搜索需求,解决了现有的彼此独立的垂直搜索系统重复建设较多、业务响应较差的问题,同时克服了现有技术中数据更新效率较低的缺陷;通过为各业务构建相应的搜索引擎映射结构,并通过搜索引擎映射结构的类型将各业务进行隔离,避免了业务间的相互影响;通过日志数据订阅消费软件实时采集源数据库的更新数据,解决了现有技术中无法实时更新数据的问题;通过在查询单元统一对不同业务的搜索服务进行备份、限流、降级、恶意流量拦截、反爬虫等管理,解决了现有技术中无法对搜索服务实现统一管理的问题。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的垂直搜索方法的主要步骤示意图;
图2是根据本发明实施例的垂直搜索方法的搜索模型单元数据结构示意图;
图3是根据本发明实施例的垂直搜索系统的主要部分示意图;
图4是根据本发明实施例的垂直搜索系统的组成示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本发明实施例的技术方案通过建立适用于不同业务的通用搜索模型,使源数据库中的更新数据可经数据清洗、数据校验、数据转换之后自动写入搜索引擎,满足了不同业务的垂直搜索需求,解决了现有的彼此独立的垂直搜索系统重复建设较多、业务响应较差的问题,同时克服了现有技术中数据更新效率较低的缺陷;通过为各业务构建相应的搜索引擎映射结构,并通过搜索引擎映射结构的类型将各业务进行隔离,避免了业务间的相互影响;通过日志数据订阅消费软件实时采集源数据库的更新数据,解决了现有技术中无法实时更新数据的问题;通过在查询单元统一对不同业务的搜索服务进行备份、限流、降级、恶意流量拦截、反爬虫等管理,解决了现有技术中无法对搜索服务实现统一管理的问题。
图1是根据本实施例的垂直搜索方法的主要步骤示意图。
如图1所示,本发明实施例的垂直搜索方法按照以下步骤执行:
步骤S101:从至少一个源数据库中的任一源数据库中确定该源数据库的多个字段名、以及与所述多个字段名中的任一字段名对应的搜索引擎字段名。
在本发明实施例中,建立搜索模型单元、搜索引擎单元、索引单元、查询单元用于实现本发明的垂直搜索方法。另外,实际应用中,源数据库为提供业务数据的数据库,例如提供酒店数据的酒店数据库、提供门票数据的门票数据库、提供体育场馆数据的场馆数据库等。较佳地,本发明实施例的源数据库可以为MySQL(MySQL是一种关系型数据库管理系统)数据库。可以理解的是,本发明的实施例也可选用适用的其它形式的数据库,本发明对此不作限制。以下本文将以场馆为例介绍本发明的技术方案。
在本步骤中,首先在搜索模型单元为任一源数据库建立搜索模型,并设置模型名称、模型ID(标识)等参数。特别地,在后续的数据更新过程中,可利用模型名称来确定搜索模型。
建立搜索模型之后,从该源数据库的字段名中确定搜索所需的多个字段名,存储到该搜索模型的“源数据库字段名”字段;并确定与所述多个字段名中的任一字段名对应的搜索引擎字段名,存储到该搜索模型的“搜索引擎字段名”字段。
其中,搜索引擎字段名指的是搜索引擎单元中存储的字段名。较佳地,在本发明实施例中,搜索引擎单元可以是ES(Elastic Search,弹性搜索引擎),也可以是Solr(SearchOn Lucene Replication,基于Lucene复制的搜索)等搜索引擎,本发明对此不作限制。
例如:对于场馆数据库,首先从中确定所需字段名:
pictures(字段中文名为:场馆图片)
code(字段中文名为:城市编号)
areaname(字段中文名为:区域名称)
name(字段中文名为:场馆名称)
modifed time(字段中文名为:修改时间)
longitude(字段中文名为:场馆经度)
latitude(字段中文名为:场馆纬度)
averge(字段中文名为:平均价)
之后,确定与上述字段名对应的搜索引擎字段名(划线后为搜索引擎字段名):
pictures——venuePictures
code——cityCode
area name——tradeAreaName
name——venueName
modifed time——modified
longitude——location
latitude——location
averge——averagePrice
通过上述步骤,可在源数据库的搜索模型建立源数据库字段名与搜索引擎字段名的映射关系。
步骤S102:基于搜索引擎字段名构建该源数据库的搜索引擎映射结构。
在本步骤中,搜索引擎映射结构指的是用于定义搜索引擎处理索引文档规则的数据结构。较佳地,本发明实施例的搜索引擎映射结构可以是弹性搜索引擎映射结构ESMapping。在本步骤中,搜索引擎单元可以利用搜索引擎字段名构建源数据库的搜索引擎映射结构ES Mapping。
较佳地,在本发明实施例中,本步骤可以按照如下步骤执行:
1.在确定任一源数据库的搜索模型中存储的搜索引擎字段名之后,在该搜索模型中,为所述搜索引擎字段名配置至少一个属性参数。属性参数由属性名称以及与该属性名称对应的参数值组成,其存储在搜索引擎映射结构,用于表征与搜索相关的属性,如字段是否可被索引、字段是否分词等。
较佳地,属性名称可以包括以下一种或多种:字段类型type、索引index、存储store、分词器analyzer、格式format及加权boost;属性参数可以相应地包括以下一种或多种:字段类型参数、索引参数、存储参数、分词器参数、格式参数及加权参数。例如:index:no、store:true均为属性参数。
2.索引单元将所述搜索引擎字段名及其属性参数发送到搜索引擎单元,搜索引擎单元基于所述搜索引擎字段名及其属性参数,构建该源数据库的搜索引擎映射结构。
例如:搜索引擎单元ES可根据上述搜索引擎字段名venuePictures、cityCode、tradeAreaName、venueName、modified、location、location、averagePrice以及为其配置的属性参数构建下面的ES Mapping:
“search”:{
“mappings”:{
“venue”:{//模型名称,表征该ES Mapping
“_all”:{
“enabled”:false
}
“properties”:{
“venuePictures”:{//字段类型为string
“index”:“no”,
“store”:true,
“type”:“string”
}
“cityCode”:{//字段类型为long
“type”:“long”
}
“tradeAreaName”:{//字段类型为string
“index”:“not_analyzed”,
“store”:true,
“type”:“string”
}
“venueName”:{//字段类型为string
“search_analyzer”:“ik_smart”,
“analyzer”:“ik_max_word”,
“store”:true,
“type”:“string”
}
“modified”:{//字段类型为date
“format”:“yyyy-MM-ddHH:mm:ss”,
“store”:true,
“type”:“date”
}
“location”:{//字段类型为geo_point
“store”:true,
“type”:“geo_point”
}
“averagePrice”:{//字段类型为double
“store”:true,
“type”:“double”
}
在上述ES Mapping中,type行是字段类型参数,index行是索引参数,store行是存储参数,analyzer行是分词器参数,format行是格式参数。
具体地,在Mapping类型type为venue的上述ES Mapping中:
搜索引擎字段名venuePictures的属性为:不索引、数据存储到倒排索引、字段类型为字符串类型string;
搜索引擎字段名cityCode的属性为:字段类型为长整型long;
搜索引擎字段名tradeAreaName的属性为:不分词索引、数据存储到倒排索引、字段类型为string;
搜索引擎字段名venueName的属性为:检索过程中的分词器为ik_smart、分词器为ik_max_word、数据存储到倒排索引、字段类型为string;
搜索引擎字段名modified的属性为:格式为yyyy-MM-ddHH:mm:ss、数据存储到倒排索引、字段类型为日期时间类型date;
搜索引擎字段名location的属性为:数据存储到倒排索引、字段类型为地理位置类型geo_point;
搜索引擎字段名averagePrice的属性为数据存储到倒排索引、字段类型为双精度浮点数值类型double。
需要说明的是,ES Mapping type(ES Mapping类型)设置为搜索模型的模型名称,以实现搜索模型与ES Mapping的对应。此外,ES Mapping type可以隔离不同业务的搜索数据,避免业务间的相互影响。
步骤S103:获取任一源数据库的更新数据,根据更新数据生成与该源数据库的搜索模型中存储的搜索引擎字段名对应的数据,将与所述搜索引擎字段名对应的数据输入搜索引擎映射结构以提供搜索。
本步骤将通过之前建立的源数据库字段名与搜索引擎字段名的映射关系、以及搜索引擎映射结构将源数据库的更新数据输入搜索引擎,对外提供搜索。
在本步骤中,与搜索引擎字段名对应的数据指的是与搜索引擎字段名具有对应关系、且可以写入搜索引擎映射结构的数据,如可写入ES Mapping的以任一搜索引擎字段名为键的键值对(key-value pair)数据。
具体应用中,本步骤具体可按照如下流程执行:
1.数据获取:索引单元获取任一数据源的更新数据。
在本发明实施例中,更新数据可以是源数据库的二进制日志binlog数据,索引单元可通过日志数据订阅消费软件如canal(canal为基于数据库增量日志解析的开源软件,提供增量数据订阅及消费)获取源数据库的binlog数据。索引单元与源数据库之间的通信可以采用消息队列或者RPC(Remote Procedure Calls,远程过程调用)的方式。可以理解的是,本发明还可采用具有采集实时数据功能的其它方法进行数据获取,并不限于上述的canal。
本步骤可通过canal获取源数据库的实时数据,从而可优化搜索系统性能,提升用户体验。
2.数据清洗:在计算机技术领域,数据清洗(data cleaning)指的是根据预定规则对数据进行过滤的过程。在本发明实施例中,索引单元将更新数据解析为键值对数据;之后根据模型名称确定该源数据库的搜索模型以及该搜索模型的源数据库字段名;在更新数据解析的键值对数据中,选取键名与任一源数据库字段名相同的数据作为清洗数据,将其余数据舍弃。其中,键名指的是键key的名称。
例如:对于场馆数据库,其搜索模型中存储的源数据库字段名为:pictures、code、area name,则在更新数据转换的键值对数据中选取键名为pictures、code或area name的数据。
特别地,在本步骤之前,可预先将搜索模型存储的数据存入缓存;在数据清洗时,从缓存中拉取源数据库字段名用于对键值对数据进行数据清洗,从而加快系统响应速度。
3.数据校验:索引单元根据预设的校验规则对经过数据清洗的键值对数据进行校验。
在本发明实施例中,校验规则存储在搜索模型中,可根据业务需求灵活设置。在本步骤中,索引单元调用搜索模型存储的校验规则进行数据校验。需要说明的是,对于不需校验的键值对数据,不执行本步骤。
4.数据转换:索引单元根据预设的与源数据库字段名对应的转换脚本对经过数据校验的键值对数据的值value进行转换,并将所述键值对数据的键名映射为与键名对应的搜索引擎字段名,得到与搜索引擎字段名对应的数据。
在本发明实施例中,转换脚本用于将具有源数据库特定形式的数据转换为适用于搜索引擎的数据,其存储在搜索模型中,可根据具体业务需求进行设置。实际应用中,转换脚本可以是groovy(groovy是一种基于Java虚拟机的敏捷开发语言)脚本。在本步骤中,索引单元调用搜索模型存储的转换脚本对相应的键值对数据中的值进行转换,调用搜索模型存储的源数据库字段名与搜索引擎字段名的映射关系对键值对数据中的键名进行转换。其中,与键名对应的搜索引擎字段名的含义是:由于键值对数据中的键名必然与一源数据库字段名相同,与键名对应的搜索引擎字段名即是指与该源数据库字段名对应的搜索引擎字段名。
在本发明实施例中,源数据库MySQL支持的数据类型一般有整数类型int、双精度浮点数值类型double、日期时间类型date等,而ES支持的字段类型有字符串类型string、日期时间类型date、长整型long、布尔类型boolean、IP(Internet Protocol,互联网协议)类型、对象类型object、嵌入类型nested、地理位置类型geo_point等,因此在本步骤的数据转换中,一般存在数据类型不变、数据类型变化两种情形:
A.数据类型不变:如果待转换的键值对数据的数据类型为源数据库与搜索引擎单元同时支持,则根据转换脚本对该键值对数据的值进行数量变化,转换前后的数据一一对应。
例如:int类型为源数据库与搜索引擎单元同时支持,对于int类型的键值对数据<price,100>,如果转换脚本记录的转换规则为“将源数据库以分为单位的价格转换为搜索引擎单元以元为单位的价格”,键名“price”对应于搜索引擎字段名“venuePrice”,则索引单元将其转换为<venuePrice,1>。
B.数据类型变化:如果数据转换前后数据类型发生变化,则需要对待转换的键值对数据的值进行格式变化,转换前后的数据往往不会一一对应。
例如:源数据库字段名longitude(经度)、latitude(纬度)的数据类型为double,需要转换为搜索引擎字段名为location、字段类型为geo_point的数据,如果待转换数据为<longitude,113.914619>及<latitude,22.50128>,则索引单元将其转换为<location,[113.914619,22.50128]>。
本步骤能够基于转换脚本对待转换数据自动进行个性化转换,降低了程序复杂度,提升了业务效率。
需要说明的是,在本发明实施例中,也可以先对键值对数据中的键名进行转换,再对键值对数据中的值进行转换。另外,对于没有设置转换脚本的源数据库字段名,不需要对相应的键值对数据进行值的转换。
5.数据写入:索引单元将与搜索引擎字段名对应的数据输入搜索引擎映射结构以向外提供搜索。
在本步骤中,索引单元将经过数据转换的键值对数据写入ES Mapping中,该ESMapping的类型type可设置为源数据库的搜索模型的模型名称,由此可以通过模型名称确定要写入的ES Mapping。ES Mapping type可以隔离不同业务的搜索数据,避免业务间的相互影响。
在经过数据转换的键值对数据写入ES Mapping之后,ES可以通过查询单元向用户提供各个源数据库相应业务的垂直搜索服务。用户进行搜索时,需要确定模型名称以定位搜索引擎中的搜索数据集。一般地,用户选择垂直搜索的具体领域时,相应的模型名称已自动输入到搜索引擎。
通过步骤S103,完成了源数据库更新数据的数据清洗、数据校验、数据转换,使更新数据自动转换为适于搜索引擎的数据,进而写入搜索引擎,向外提供搜索服务,实现了利用通用搜索模型与通用搜索系统进行垂直搜索的技术效果。
作为一个优选方案,在本发明的实施例描述的由搜索模型单元、搜索引擎单元、索引单元、查询单元等组成的通用的垂直搜索系统的基础上,可在查询单元设置规则,对不同业务的搜素服务进行统一管理,如备份、限流、降级、恶意流量拦截、反爬虫等。
图2是根据本发明实施例的垂直搜索方法的搜索模型单元数据结构示意图。
如图2所示,搜索模型单元为任一源数据库建立对应的搜索模型,确定模型名称、模型ID、模型状态、数据源配置等参数。之后,确定搜索模型的各个字段:源数据库字段名、搜索引擎字段名、模型ID、字段ID、字段中文名、字段类型等。右侧是搜索模型字段根据字段类型的具体分类。其中,源数据库字段名为搜索模型字段;groovy数据转换脚本即为转换脚本,用于实现数据转换;之外的数据为对应于不同搜索引擎字段名的属性参数的属性名称。例如:日期format即表征前述格式format,字段级别加权分数即表征前述加权boost,是否可搜索即表征前述索引index,分词器类型即表征前述分词器analyzer;此外,右侧还包含是否分词,是否使用geohash(geohash是一种可将二维经纬度编码成一维字符串的编码方法),geohash精度等属性名称。
此外,在图2中,模型参数、字段名、属性名称之后的INT、DOUBLE等表示相应的数据类型。其中,BIGINT为大整数类型(带符号可表示从-263到263-1,无符号可表示0到264-1)、TINYINT为小整数类型(带符号可表示从-128到127,无符号可表示0到255)、VARCHAR为可变长字符串类型、VARBINARY为可变长二进制数据类型、DECIMAL精确数字数据类型。
根据本发明实施例的垂直搜索方法可以看出,因为采用了建立适用于不同业务的通用搜索模型的技术手段,从而使源数据库中的更新数据可经数据清洗、数据校验、数据转换之后自动写入搜索引擎,满足了不同业务的垂直搜索需求,解决了现有的彼此独立的垂直搜索系统重复建设较多、业务响应较差的问题,同时克服了现有技术中数据更新效率较低的缺陷;因为采用了为各业务构建相应的搜索引擎映射结构,并利用搜索引擎映射结构的类型将各业务进行隔离的技术手段,从而避免了业务间的相互影响;通过日志数据订阅消费软件实时采集源数据库的更新数据,解决了现有技术中无法实时更新数据的问题;通过在查询单元统一对不同业务的搜索服务进行备份、限流、降级、恶意流量拦截、反爬虫等管理,解决了现有技术中无法对搜索服务实现统一管理的问题。
图3是本发明实施例的垂直搜索系统的主要部分示意图。
如图3所示,本发明实施例的垂直搜索系统300可包括:搜索模型单元301、搜索引擎单元302以及索引单元303。其中:
搜索模型单元301可用于从至少一个源数据库中的任一源数据库中确定该源数据库的多个字段名以及与多个字段名中的任一字段名对应的搜索引擎字段名。
搜索引擎单元302可用于基于搜索引擎字段名构建该源数据库的搜索引擎映射结构。
索引单元303可用于获取该源数据库的更新数据,根据更新数据生成与搜索引擎字段名对应的数据,将与搜索引擎字段名对应的数据输入搜索引擎映射结构以提供搜索。
在本发明实施例中,搜索模型单元301可用于:在确定与所述多个字段名中的任一字段名对应的搜索引擎字段名之后,为搜索引擎字段名配置至少一个属性参数。实际应用中,属性参数包括以下一种或多种:字段类型参数、索引参数、存储参数、分词器参数、格式参数及加权参数。
一般地,搜索引擎单元303可用于:基于搜索引擎字段名以及为搜索引擎字段名配置的属性参数构建该源数据库的搜索引擎映射结构。
作为一个优选方案,索引单元303可用于:将更新数据转换为键值对数据,从键值对数据中选取键名与所述多个字段名中任一字段名相同的数据作为清洗数据;将任一清洗数据中的键名更改为与该键名对应的搜索引擎字段名,得到与搜索引擎字段名对应的数据。
在本发明的可选实施例中,索引单元303可用于:在得到与搜索引擎字段名对应的数据之前,根据在搜索模型单元301预设的转换脚本对该清洗数据中的值进行转换。
较佳地,索引单元303还可用于:在从键值对数据中选取键名与多个字段名中任一字段名相同的数据作为清洗数据之后,根据在搜索模型单元301预设的校验规则对清洗数据进行校验。
此外,在本发明实施例中,垂直搜索系统300还可包括查询单元,用于基于搜索引擎单元的数据、针对任一源数据库对应的业务向外提供搜索。
具体应用中,搜索引擎映射结构可以是弹性搜索引擎映射结构ES Mapping,源数据库可以是MySQL,更新数据可以是二进制日志binlog数据。
图4是根据本发明实施例的垂直搜索系统的组成示意图。
如图4所示,本发明实施例的垂直搜索系统由搜索模型单元、搜索引擎单元、索引单元、查询单元组成。其中:
搜索模型单元用于表征数据从垂直领域的源数据库到搜索引擎单元的映射关系,同时记录数据清洗逻辑、数据转换逻辑与数据校验规则。
索引单元用于调用搜索模型单元对源数据库的数据进行数据清洗、校验、转换,最后写入搜索引擎单元。
搜索引擎单元用于提供基于分词、地理位置等查询。
查询单元用于对不同的业务提供统一的垂直搜索服务,同时负责搜索服务的统一管理。
此外,本发明的实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时的步骤包括:从至少一个源数据库中的任一源数据库中确定该源数据库的多个字段名、以及与所述多个字段名中的任一字段名对应的搜索引擎字段名;基于所述搜索引擎字段名构建该源数据库的搜索引擎映射结构;获取该源数据库的更新数据,根据所述更新数据生成与所述搜索引擎字段名对应的数据,将与所述搜索引擎字段名对应的数据输入所述搜索引擎映射结构以提供搜索。
根据本发明实施例的技术方案,通过建立适用于不同业务的通用搜索模型,使源数据库中的更新数据可经数据清洗、数据校验、数据转换之后自动写入搜索引擎,满足了不同业务的垂直搜索需求,解决了现有的彼此独立的垂直搜索系统重复建设较多、业务响应较差的问题,同时克服了现有技术中数据更新效率较低的缺陷;通过为各业务构建相应的搜索引擎映射结构,并通过搜索引擎映射结构的类型将各业务进行隔离,避免了业务间的相互影响;通过日志数据订阅消费软件实时采集源数据库的更新数据,解决了现有技术中无法实时更新数据的问题;通过在查询单元统一对不同业务的搜索服务进行备份、限流、降级、恶意流量拦截、反爬虫等管理,解决了现有技术中无法对搜索服务实现统一管理的问题。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (17)

1.一种垂直搜索方法,其特征在于,包括:
从至少一个源数据库中的任一源数据库中确定该源数据库的多个字段名、以及与所述多个字段名中的任一字段名对应的搜索引擎字段名;
基于所述搜索引擎字段名构建该源数据库的搜索引擎映射结构;
获取该源数据库的更新数据,根据所述更新数据生成与所述搜索引擎字段名对应的数据,将与所述搜索引擎字段名对应的数据输入所述搜索引擎映射结构以提供搜索。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:为所述搜索引擎字段名配置至少一个属性参数,以构建该源数据库的搜索引擎映射结构;以及
所述基于所述搜索引擎字段名构建该源数据库的搜索引擎映射结构包括:基于所述搜索引擎字段名以及为所述搜索引擎字段名配置的属性参数构建该源数据库的搜索引擎映射结构。
3.根据权利要求2所述的方法,其特征在于,所述属性参数包括以下一种或多种:字段类型参数、索引参数、存储参数、分词器参数、格式参数及加权参数。
4.根据权利要求1所述的方法,其特征在于,所述根据所述更新数据生成与所述搜索引擎字段名对应的数据包括:
将所述更新数据转换为键值对数据,从所述键值对数据中选取键名与所述多个字段名中任一字段名相同的数据作为清洗数据;
将任一清洗数据中的键名更改为与该键名对应的搜索引擎字段名,得到与所述搜索引擎字段名对应的数据。
5.根据权利要求4所述的方法,其特征在于,所述方法进一步包括:
根据预设的转换脚本对该清洗数据中的值进行转换,以得到与所述搜索引擎字段名对应的数据。
6.根据权利要求4所述的方法,其特征在于,所述方法进一步包括:
根据预设的校验规则对所述清洗数据进行校验。
7.根据权利要求1-6任一所述的方法,其特征在于,所述搜索引擎映射结构为弹性搜索引擎映射结构ES Mapping,所述源数据库为MySQL,所述更新数据为二进制日志binlog数据。
8.一种垂直搜索系统,其特征在于,包括:
搜索模型单元,用于从至少一个源数据库中的任一源数据库中确定该源数据库的多个字段名、以及与所述多个字段名中的任一字段名对应的搜索引擎字段名;
搜索引擎单元,用于基于所述搜索引擎字段名构建该源数据库的搜索引擎映射结构;
索引单元,用于获取该源数据库的更新数据,根据所述更新数据生成与所述搜索引擎字段名对应的数据,将与所述搜索引擎字段名对应的数据输入所述搜索引擎映射结构以提供搜索。
9.根据权利要求8所述的系统,其特征在于,所述搜索模型单元进一步用于:为所述搜索引擎字段名配置至少一个属性参数,以构建该源数据库的搜索引擎映射结构;以及
所述搜索引擎单元用于:基于所述搜索引擎字段名以及为所述搜索引擎字段名配置的属性参数构建该源数据库的搜索引擎映射结构。
10.根据权利要求9所述的系统,其特征在于,所述属性参数包括以下一种或多种:字段类型参数、索引参数、存储参数、分词器参数、格式参数及加权参数。
11.根据权利要求8所述的系统,其特征在于,所述索引单元用于:
将所述更新数据转换为键值对数据,从所述键值对数据中选取键名与所述多个字段名中任一字段名相同的数据作为清洗数据;
将任一清洗数据中的键名更改为与该键名对应的搜索引擎字段名,得到与所述搜索引擎字段名对应的数据。
12.根据权利要求11所述的系统,其特征在于,所述索引单元进一步用于:
根据在所述搜索模型单元预设的转换脚本对该清洗数据中的值进行转换,以得到与所述搜索引擎字段名对应的数据。
13.根据权利要求11所述的系统,其特征在于,所述索引单元进一步用于:
根据在所述搜索模型单元预设的校验规则对所述清洗数据进行校验。
14.根据权利要求8所述的系统,其特征在于,所述系统进一步包括:
查询单元,用于基于所述搜索引擎单元的数据、针对任一源数据库对应的业务向外提供搜索。
15.根据权利要求8-14任一所述的系统,其特征在于,所述搜索引擎映射结构为弹性搜索引擎映射结构ES Mapping,所述源数据库为MySQL,所述更新数据为二进制日志binlog数据。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
17.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
CN201710586225.3A 2017-07-18 2017-07-18 垂直搜索方法和系统 Active CN110020063B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710586225.3A CN110020063B (zh) 2017-07-18 2017-07-18 垂直搜索方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710586225.3A CN110020063B (zh) 2017-07-18 2017-07-18 垂直搜索方法和系统

Publications (2)

Publication Number Publication Date
CN110020063A true CN110020063A (zh) 2019-07-16
CN110020063B CN110020063B (zh) 2021-09-03

Family

ID=67185873

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710586225.3A Active CN110020063B (zh) 2017-07-18 2017-07-18 垂直搜索方法和系统

Country Status (1)

Country Link
CN (1) CN110020063B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110941641A (zh) * 2019-11-15 2020-03-31 南威软件股份有限公司 一种跨多个数据库进行数据搜索的方法
CN110990401A (zh) * 2019-11-22 2020-04-10 上海景域文化传播股份有限公司 一种酒店搜索方法及系统
CN111090668A (zh) * 2019-12-09 2020-05-01 北京海益同展信息科技有限公司 数据检索方法及装置、电子设备和计算机可读存储介质
CN111241137A (zh) * 2020-01-08 2020-06-05 北京字节跳动网络技术有限公司 数据处理方法、装置、电子设备及存储介质
CN111367692A (zh) * 2020-03-09 2020-07-03 政采云有限公司 一种搜索引擎数据处理方法、装置、电子设备及介质
CN111914066A (zh) * 2020-08-17 2020-11-10 山东合天智汇信息技术有限公司 多源数据库全局搜索方法及系统
CN112035599A (zh) * 2020-11-06 2020-12-04 苏宁金融科技(南京)有限公司 基于垂直搜索的查询方法、装置、计算机设备及存储介质
CN113378022A (zh) * 2020-03-10 2021-09-10 北京搜狗科技发展有限公司 一种站内搜索平台、搜索方法和相关装置

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129461A (zh) * 2011-03-11 2011-07-20 南京新模式软件集成有限公司 一种快速检索企业数据的方法
CN102200974A (zh) * 2010-03-25 2011-09-28 北京师范大学 一种用于搜索引擎的统一信息检索智能体系统与方法
CN103164408A (zh) * 2011-12-09 2013-06-19 阿里巴巴集团控股有限公司 基于垂直搜索引擎的信息存储、查询方法及其装置
US20140074877A1 (en) * 2011-11-21 2014-03-13 Google Inc. Grouped search query refinements
US20140129535A1 (en) * 2012-11-02 2014-05-08 Swiftype, Inc. Automatically Creating a Custom Search Engine for a Web Site Based on Social Input
CN104077337A (zh) * 2013-05-20 2014-10-01 腾讯科技(深圳)有限公司 搜索方法及装置
CN104123346A (zh) * 2014-07-02 2014-10-29 广东电网公司信息中心 一种结构化数据搜索方法
CN104346416A (zh) * 2013-07-31 2015-02-11 腾讯科技(深圳)有限公司 一种在浏览器中实现搜索的方法、装置及终端设备
US20160224601A1 (en) * 2011-08-30 2016-08-04 Open Text S.A. System and method of search indexes using key-value attributes to searchable metadata
CN105843867A (zh) * 2016-03-17 2016-08-10 畅捷通信息技术股份有限公司 基于元数据模型的检索方法和基于元数据模型的检索装置
CN106095863A (zh) * 2016-06-03 2016-11-09 众安在线财产保险股份有限公司 一种多维度数据查询和存储系统和方法
US20170068678A1 (en) * 2015-09-03 2017-03-09 Oracle International Corporation Methods and systems for updating a search index
CN106503195A (zh) * 2016-11-02 2017-03-15 四川译宝联科技有限公司 一种基于搜索引擎的翻译词库检索方法及系统
CN106682148A (zh) * 2016-12-22 2017-05-17 北京锐安科技有限公司 一种基于Solr数据搜索的方法及装置
US20170148078A1 (en) * 2015-11-19 2017-05-25 BloomReach, Inc. Dynamic attributes for searching

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102200974A (zh) * 2010-03-25 2011-09-28 北京师范大学 一种用于搜索引擎的统一信息检索智能体系统与方法
CN102129461A (zh) * 2011-03-11 2011-07-20 南京新模式软件集成有限公司 一种快速检索企业数据的方法
US20160224601A1 (en) * 2011-08-30 2016-08-04 Open Text S.A. System and method of search indexes using key-value attributes to searchable metadata
US20140074877A1 (en) * 2011-11-21 2014-03-13 Google Inc. Grouped search query refinements
CN103164408A (zh) * 2011-12-09 2013-06-19 阿里巴巴集团控股有限公司 基于垂直搜索引擎的信息存储、查询方法及其装置
US20140129535A1 (en) * 2012-11-02 2014-05-08 Swiftype, Inc. Automatically Creating a Custom Search Engine for a Web Site Based on Social Input
CN104077337A (zh) * 2013-05-20 2014-10-01 腾讯科技(深圳)有限公司 搜索方法及装置
CN104346416A (zh) * 2013-07-31 2015-02-11 腾讯科技(深圳)有限公司 一种在浏览器中实现搜索的方法、装置及终端设备
CN104123346A (zh) * 2014-07-02 2014-10-29 广东电网公司信息中心 一种结构化数据搜索方法
US20170068678A1 (en) * 2015-09-03 2017-03-09 Oracle International Corporation Methods and systems for updating a search index
US20170148078A1 (en) * 2015-11-19 2017-05-25 BloomReach, Inc. Dynamic attributes for searching
CN105843867A (zh) * 2016-03-17 2016-08-10 畅捷通信息技术股份有限公司 基于元数据模型的检索方法和基于元数据模型的检索装置
CN106095863A (zh) * 2016-06-03 2016-11-09 众安在线财产保险股份有限公司 一种多维度数据查询和存储系统和方法
CN106503195A (zh) * 2016-11-02 2017-03-15 四川译宝联科技有限公司 一种基于搜索引擎的翻译词库检索方法及系统
CN106682148A (zh) * 2016-12-22 2017-05-17 北京锐安科技有限公司 一种基于Solr数据搜索的方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
万齐鸣: "基于云计算架构的学术搜索引擎研制与应用", 《数字图书馆论坛》 *
方勇: "分布式智能垂直搜索引擎系统的设计", 《价值工程》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110941641B (zh) * 2019-11-15 2022-06-21 南威软件股份有限公司 一种跨多个数据库进行数据搜索的方法
CN110941641A (zh) * 2019-11-15 2020-03-31 南威软件股份有限公司 一种跨多个数据库进行数据搜索的方法
CN110990401A (zh) * 2019-11-22 2020-04-10 上海景域文化传播股份有限公司 一种酒店搜索方法及系统
CN110990401B (zh) * 2019-11-22 2023-07-28 上海景域文化传播股份有限公司 一种酒店搜索方法及系统
CN111090668A (zh) * 2019-12-09 2020-05-01 北京海益同展信息科技有限公司 数据检索方法及装置、电子设备和计算机可读存储介质
CN111090668B (zh) * 2019-12-09 2023-09-26 京东科技信息技术有限公司 数据检索方法及装置、电子设备和计算机可读存储介质
CN111241137A (zh) * 2020-01-08 2020-06-05 北京字节跳动网络技术有限公司 数据处理方法、装置、电子设备及存储介质
CN111241137B (zh) * 2020-01-08 2023-08-22 北京字节跳动网络技术有限公司 数据处理方法、装置、电子设备及存储介质
CN111367692B (zh) * 2020-03-09 2023-08-22 政采云有限公司 一种搜索引擎数据处理方法、装置、电子设备及介质
CN111367692A (zh) * 2020-03-09 2020-07-03 政采云有限公司 一种搜索引擎数据处理方法、装置、电子设备及介质
CN113378022A (zh) * 2020-03-10 2021-09-10 北京搜狗科技发展有限公司 一种站内搜索平台、搜索方法和相关装置
CN111914066A (zh) * 2020-08-17 2020-11-10 山东合天智汇信息技术有限公司 多源数据库全局搜索方法及系统
CN111914066B (zh) * 2020-08-17 2024-02-02 山东合天智汇信息技术有限公司 多源数据库全局搜索方法及系统
CN112035599A (zh) * 2020-11-06 2020-12-04 苏宁金融科技(南京)有限公司 基于垂直搜索的查询方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN110020063B (zh) 2021-09-03

Similar Documents

Publication Publication Date Title
CN110020063A (zh) 垂直搜索方法和系统
Morsey et al. Dbpedia and the live extraction of structured data from wikipedia
CN105706078B (zh) 实体集合的自动定义
Bellini et al. Smart city architecture for data ingestion and analytics: Processes and solutions
US11681927B2 (en) Analyzing geotemporal proximity of entities through a knowledge graph
Holzschuher et al. Querying a graph database–language selection and performance considerations
KR102593171B1 (ko) 정보 처리 방법, 장치, 전자 기기 및 저장 매체
CN110119473A (zh) 一种目标文件知识图谱的构建方法及装置
US11726999B1 (en) Obtaining inferences to perform access requests at a non-relational database system
Alonso-Rorís et al. Information extraction in semantic, highly-structured, and semi-structured web sources
CN112307318A (zh) 一种内容发布方法、系统及装置
US11216894B2 (en) Image-based semantic accommodation search
CN111008198B (zh) 业务数据获取方法、装置、存储介质、电子设备
Lefort et al. The ACORN-SAT linked climate dataset
Figueiredo et al. Moredata: A geospatial data enrichment framework
Mohammed Free and Open Source GIS: an overview on the recent evolution of projects, standards and communities
US11436244B2 (en) Intelligent data enrichment using knowledge graph
Sinnott et al. The Urban Data Re-use and Integration Platform for Australia: Design, Realisation, and Case Studies
Gašpar et al. Integrating Two Worlds: Relational and NoSQL
Paterson et al. Teaching nosql with ravendb and neo4j
RU2669143C1 (ru) Способ преобразования данных геоинформационных систем (гис), система для его реализации и способ поиска по сформированной этим способом базе данных
CN111079391B (zh) 一种报表的生成方法及装置
Colón-Aguirre Structure of library and information science North American school mission statements: Stakeholders and actions
Mulyo Implementation of Management Information System Website-Based Letter Archives
US11940990B1 (en) Global clock values for consistent queries to replicated data

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