一种数据搜索方法和装置制造方法及图纸

技术编号:19593365 阅读:47 留言:0更新日期:2018-11-28 04:52
本发明专利技术提供了一种数据搜索方法和装置。在检索时对索引中的可检索字段的值进行检索,查找到与检索指令中携带的查询关键词匹配的值,并在判断出与查询关键词匹配的值存在自定义属性时,获取并解析自定义字段,得到与查询关键词匹配的值的自定义属性;其中,该自定义字段为搜索引擎的索引中新建的一自定义字段,该自定义字段中以指定编码方式存储有文档的可检索字段中的所有特定值以及与该特定值对应的自定义属性,并且在进行检索时该自定义字段不会被检索。通过以同一个自定义字段存储不同文档的可检索字段中的所有特定值的自定义属性,并在检索时从该自定义字段动态获取自定义属性,减少索引的空间占用,极大地节省服务器的内存资源。

【技术实现步骤摘要】
一种数据搜索方法和装置
本专利技术涉及信息
,特别是一种数据搜索方法、数据搜索装置、计算机存储介质以及计算设备。
技术介绍
ElasticSearch是一种基于Lucene框架的开源文档搜索引擎,具有分布式多用户能力,可以快速地储存、搜索和分析海量数据,是当前流行的企业级搜索引擎。将ElasticSearch设计用于云计算中,能够达到实时搜索、高性能计算。目前各全文检索平台和云计算服务平台等广泛使用的是技术成熟的Elasticsearch5.x版本,如Elasticsearch5.2.0、Elasticsearch5.5.3等。索引是搜索引擎中用于快速检索内容而创建的数据结构。在ElasticSearch中,被写入文档的所有字段的信息都被索引,经过处理后写入到倒排索引(InvertedIndex)的数据结构中。一个索引中的每条文档数据行可包含一个或多个可检索字段,每个可检索字段可存储多个值,且该多个值均可被检索。在很多情况下,针对可检索字段中的特定值,需要额外附带一些自定义属性。Elasticsearch5.x自身提供了文档自定义字段功能。当利用该自定义字段功能来针对可检索字段中的特定值写入一些自定义属性时,需要通过在索引中新增一个与此字段相关的自定义属性字段。例如,可检索字段内容为[TAG1,TAG2],若针对TAG1写入自定义属性,则TAG1对应的自定义属性字段可能叫做TAG1_ATTR。如此,文档中每增加一个自定义属性字段,都会导致整体的索引变大。特别是当不同的文档使用不同的自定义属性字段时,会导致索引叠加放大,造成服务器内存资源的极大浪费。因此,如何实现在满足文档的数组字段可被检索的需求的前提下,在提供对数组字段中某个特定值附带自定义属性的同时,将索引控制在常量级别以节约资源,成为亟待解决的技术问题。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的数据搜索方法、数据搜索装置、计算机存储介质以及计算设备。根据本专利技术实施例的一方面,提供了一种数据搜索方法,包括:接收携带有查询关键词的检索指令;根据所述检索指令对搜索引擎的索引中的可检索字段的值进行检索,查找到与所述查询关键词匹配的值;判断与所述查询关键词匹配的值是否存在自定义属性;若是,则获取并解析自定义字段,从所述自定义字段解析得到与所述查询关键词匹配的值的自定义属性;其中,所述自定义字段为所述搜索引擎的索引中新建的一自定义字段,所述自定义字段中以指定编码方式存储有文档的可检索字段中的所有特定值以及与该特定值对应的自定义属性,并且在进行检索时所述自定义字段不会被检索。可选地,在接收携带有查询关键词的检索指令之前,所述方法还包括:当所述搜索引擎的客户端向服务器写入文档时,若被写入文档的可检索字段中包含待添加自定义属性的特定值,则按照所述指定编码方式将所述被写入文档的可检索字段中的该特定值以及与该特定值对应的自定义属性保存在所述自定义字段中。可选地,所述自定义字段的数据类型包括字符串类型。可选地,当被写入文档的可检索字段中包含的待添加自定义属性的特定值为一个时,按照所述指定编码方式将所述被写入文档的可检索字段中的该特定值以及与该特定值对应的自定义属性保存在所述自定义字段中,包括:采用键-值kv数据结构对所述被写入文档的可检索字段中的该特定值以及与该特定值对应的自定义属性进行编码,得到指定格式的字符串;将所述指定格式的字符串保存在所述自定义字段中。可选地,当被写入文档的可检索字段中包含的待添加自定义属性的特定值为多个时,按照所述指定编码方式将所述被写入文档的可检索字段中的该特定值以及与该特定值对应的自定义属性保存在所述自定义字段中,包括:采用键-值kv数据结构对所述被写入文档的可检索字段中的该多个特定值以及与该多个特定值分别对应的自定义属性进行编码,得到指定格式的字符串数组;将所述指定格式的字符串数组保存在所述自定义字段中。可选地,判断与所述查询关键词匹配的值是否存在自定义属性,包括:将与所述查询关键词匹配的值与所述自定义字段中保存的内容进行匹配;若匹配成功,则判断与所述查询关键词匹配的值存在自定义属性。可选地,解析自定义字段,从所述自定义字段解析得到与所述查询关键词匹配的值的自定义属性,包括:调用指定函数对所述自定义字段进行解析;获取并返回与所述查询关键词匹配的值的自定义属性。可选地,在解析自定义字段,从所述自定义字段解析得到与所述查询关键词匹配的值的自定义属性之后,所述方法还包括:根据所述查询关键词、与所述查询关键词匹配的值以及与所述查询关键词匹配的值的自定义属性,按照给定的权重进行加权计算,得到检索命中的文档的查询得分;根据所述查询得分显示检索命中的文档。可选地,所述搜索引擎包括Elasticsearch文档搜索引擎。根据本专利技术实施例的另一方面,还提供了一种数据搜索装置,包括:接收模块,适于接收携带有查询关键词的检索指令;检索模块,适于根据所述检索指令对搜索引擎的索引中的可检索字段的值进行检索,查找到与所述查询关键词匹配的值;判断模块,适于判断与所述查询关键词匹配的值是否存在自定义属性;解析模块,适于若所述判断模块判断出与所述查询关键词匹配的值存在自定义属性,则获取并解析自定义字段,从所述自定义字段解析得到与所述查询关键词匹配的值的自定义属性;其中,所述自定义字段为所述搜索引擎的索引中新建的一自定义字段,所述自定义字段中以指定编码方式存储有文档的可检索字段中的所有特定值以及与该特定值对应的自定义属性,并且在进行检索时所述自定义字段不会被检索。可选地,所述装置还包括:保存模块,适于在接收携带有查询关键词的检索指令之前,当所述搜索引擎的客户端向服务器写入文档时,若被写入文档的可检索字段中包含待添加自定义属性的特定值,则按照所述指定编码方式将所述被写入文档的可检索字段中的该特定值以及与该特定值对应的自定义属性保存在所述自定义字段中。可选地,所述自定义字段的数据类型包括字符串类型。可选地,所述保存模块还适于:当被写入文档的可检索字段中包含的待添加自定义属性的特定值为一个时,采用键-值kv数据结构对所述被写入文档的可检索字段中的该特定值以及与该特定值对应的自定义属性进行编码,得到指定格式的字符串;将所述指定格式的字符串保存在所述自定义字段中。可选地,所述保存模块还适于:当被写入文档的可检索字段中包含的待添加自定义属性的特定值为多个时,采用键-值kv数据结构对所述被写入文档的可检索字段中的该多个特定值以及与该多个特定值分别对应的自定义属性进行编码,得到指定格式的字符串数组;将所述指定格式的字符串数组保存在所述自定义字段中。可选地,所述判断模块还适于:将与所述查询关键词匹配的值与所述自定义字段中保存的内容进行匹配;若匹配成功,则判断与所述查询关键词匹配的值存在自定义属性。可选地,所述解析模块还适于:调用指定函数对所述自定义字段进行解析;获取并返回与所述查询关键词匹配的值的自定义属性。可选地,所述装置还包括:加权计算模块,适于在所述解析模块解析自定义字段,从所述自定义字段解析得到与所述查询关键词匹配的值的自定义属性之后,根据所述查询关键词、与所述查询关键词匹配的值以及与所述查询关键词匹配的值的自定义属性,本文档来自技高网
...

【技术保护点】
1.一种数据搜索方法,包括:接收携带有查询关键词的检索指令;根据所述检索指令对搜索引擎的索引中的可检索字段的值进行检索,查找到与所述查询关键词匹配的值;判断与所述查询关键词匹配的值是否存在自定义属性;若是,则获取并解析自定义字段,从所述自定义字段解析得到与所述查询关键词匹配的值的自定义属性;其中,所述自定义字段为所述搜索引擎的索引中新建的一自定义字段,所述自定义字段中以指定编码方式存储有文档的可检索字段中的所有特定值以及与该特定值对应的自定义属性,并且在进行检索时所述自定义字段不会被检索。

【技术特征摘要】
1.一种数据搜索方法,包括:接收携带有查询关键词的检索指令;根据所述检索指令对搜索引擎的索引中的可检索字段的值进行检索,查找到与所述查询关键词匹配的值;判断与所述查询关键词匹配的值是否存在自定义属性;若是,则获取并解析自定义字段,从所述自定义字段解析得到与所述查询关键词匹配的值的自定义属性;其中,所述自定义字段为所述搜索引擎的索引中新建的一自定义字段,所述自定义字段中以指定编码方式存储有文档的可检索字段中的所有特定值以及与该特定值对应的自定义属性,并且在进行检索时所述自定义字段不会被检索。2.根据权利要求1所述的方法,其中,在接收携带有查询关键词的检索指令之前,所述方法还包括:当所述搜索引擎的客户端向服务器写入文档时,若被写入文档的可检索字段中包含待添加自定义属性的特定值,则按照所述指定编码方式将所述被写入文档的可检索字段中的该特定值以及与该特定值对应的自定义属性保存在所述自定义字段中。3.根据权利要求2所述的方法,其中,所述自定义字段的数据类型包括字符串类型。4.根据权利要求3所述的方法,其中,当被写入文档的可检索字段中包含的待添加自定义属性的特定值为一个时,按照所述指定编码方式将所述被写入文档的可检索字段中的该特定值以及与该特定值对应的自定义属性保存在所述自定义字段中,包括:采用键-值kv数据结构对所述被写入文档的可检索字段中的该特定值以及与该特定值对应的自定义属性进行编码,得到指定格式的字符串;将所述指定格式的字符串保存在所述自定义字段中。5.根据权利要求3所述的方法,其中,当被写入文档的可检索字段中包含的待添加自定义属性的特定值为多个时,按照所述指定编码方式将所述被写入文档的可检索字段中的该特定值以及与该特定值对应的自定义属性保存在所述自定义字段中,包括:采用键-值kv数据结构对所述被写入...

【专利技术属性】
技术研发人员:王成龙
申请(专利权)人:北京密境和风科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1