CN109686413A - 一种基于es倒排索引的化学分子式检索方法 - Google Patents
一种基于es倒排索引的化学分子式检索方法 Download PDFInfo
- Publication number
- CN109686413A CN109686413A CN201811584455.7A CN201811584455A CN109686413A CN 109686413 A CN109686413 A CN 109686413A CN 201811584455 A CN201811584455 A CN 201811584455A CN 109686413 A CN109686413 A CN 109686413A
- Authority
- CN
- China
- Prior art keywords
- molecular formula
- minor structure
- inverted index
- atom
- hash
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于es倒排索引的化学分子式检索方法,本发明结合大数据平台对检索过程进行重新设计,首先通过对es数据库中的分子式进行分词得到的子结构建立倒排索引,并对es数据库中的分子式计算哈希表示;检索时对分子式进行分词得到子结构,并计算哈希表示,利用倒排索引得到子结构匹配的分子式集合,再与得到的分子式集合的哈希表示一一比较,得到输入分子式与分子式集合中每个分子式之间的相似度,按照应用需要输出检索结果。本发明的比较范围为分子式集合,而不是数据库中全部的分子式,减少了比较的次数,进一步加快了分子式的检索。
Description
技术领域
本发明属于信息检索领域,尤其涉及一种基于es倒排索引的化学分子式检索方法。
背景技术
化学结构式(分子式)检索主要用在化学品的搜索中,对于拥有海量化学品的企业和研究机构,快速准确地检索到分子式对于生产和研究具有重要的价值。
现有的化学分子式检索方法没有基于大数据平台,没有利用es数据库的倒排索引,化学分子式检索方法通常通过计算分子式的哈希表示来加速检索过程,虽然进行了加速,但这一过程仍然需要与数据库中全部的分子式进行一一比较来实现检索,加速效果有限。
发明内容
本发明在现有的分子式检索方法基础上,结合es(elastic search)的倒排索引技术,提出了一种在大数据平台下的检索方法,进一步加快了检索速度。
本发明的目的是通过以下技术方案来实现的:一种基于es倒排索引的化学分子式检索方法,包括以下步骤:
步骤1:对es数据库中的分子式建立倒排索引和哈希表示,具体为:
1.1对es数据库中的每个分子式进行分词,得到分子式的子结构集合,子结构集合包含2个以上用化学键相连的原子,或单个的除常用原子以外的原子;
1.2去掉子结构集合中的相同子结构;
1.3把分子式得到的一系列子结构哈希映射到一个由32位整数组成的数组上,得到分子式的哈希表示;分子式得到的一系列子结构作为分子式的索引,建立es数据库中所有分子式的倒排索引。
步骤2:检索过程,具体为:
2.1检索时对输入的分子式进行分词,得到分子式的子结构集合,计算分子式的哈希表示;
2.2用子结构集合在倒排索引中查找匹配项,即查找包含子结构集合中任一子结构的分子式,得到es数据库中匹配的分子式集合T;
2.3用输入分子式的哈希表示,与得到的分子式集合T对应的哈希表示一一比较,得到输入分子式与分子式集合T中每个分子式之间的相似度;
2.4根据输入分子式与分子式集合T中每个分子式的相似度,按照应用需要,输出T中相似度大于阈值的分子式,或按照相似度从大到小排列,输出前n个最相似的分子式。
进一步地,所述子结构的形成具体为:子结构是通过遍历分子式的原子树形成的,即依次从每一个原子A开始向前、向后遍历,将遍历到的全部原子、化学键和原子A一起形成子结构;遍历停止时即形成一个子结构,子结构记录了形成过程中遍历到的原子、原子之间的化学键、以及多个原子是否形成了环状结构。
进一步地,所述步骤1中,遍历停止条件有两个:①当遍历到的下一个原子与当前的遍历过的几个原子形成环状时,子结构形成过程即停止,得到一个子结构;②当遍历的原子数量达到7个或已经顺序遍历完当前的分子式时即停止,得到一个子结构。
进一步地,所述步骤1中,所述相同子结构有两种情况:某子结构的逆序排列是其相同子结构,环状子结构中任意原子作为起始点,均为相同子结构。
进一步地,所述步骤1中,数组长度设置为32或32的整数倍。
进一步地,所述步骤2中,两个分子式的相似度的计算方式为:每个分子式的哈希表示均看作一个二进制的大整数,具体为:将数组中的每个32位整数依次转化为二进制后,拼接为一个二进制的大整数;将两个分子式对应的两个大整数做按位(bit)与操作得到一个相同长度的二进制大整数A,计算A中1的个数An;做按位或操作得到一个相同长度的二进制大整数B,计算B中1的个数Bn;An/Bn即得到两个分子式的相似度。
本发明的有益效果是:本发明结合大数据平台对检索过程进行重新设计,首先通过对es数据库中的分子式进行分词得到的子结构建立倒排索引,并对es数据库中的分子式计算哈希表示;检索时对分子式进行分词得到子结构,并计算哈希表示,利用倒排索引得到子结构匹配的分子式集合,再与得到的分子式集合的哈希表示一一比较,减少了比较的范围,加快了分子式的检索。
附图说明
图1为本发明基于es倒排索引的化学分子式检索方法的流程图;
图2为分子式”CCC(=O)Cl”的图形。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细说明。
如图1所示,本发明提供的一种基于es倒排索引的化学分子式检索方法,包括以下步骤:
第一步:对es数据库中的分子式建立倒排索引和哈希表示:
对es数据库中的每个分子式进行分词,得到分子式的子结构集合,子结构集合包含2个以上(7个以下)用化学键相连的原子,或单个的除常用原子以外的原子,所述常用原子包括C、N、O、H等,也可以人为设定;
子结构是通过遍历分子式的原子树(由分子式的原子通过化学键连接构成的树结构)形成的,即依次从每一个原子A开始向前、向后遍历,将遍历到的全部原子、化学键和原子A一起形成子结构;遍历停止时即形成一个子结构,子结构记录了形成过程中遍历到的原子、原子之间的化学键、以及多个原子是否形成了环状结构,遍历的停止条件有两个:①当遍历到的下一个原子与当前的遍历过的几个原子形成环状时,子结构形成过程(遍历过程)即停止,得到一个子结构;②当遍历的原子数量达到7个或已经顺序遍历完当前的分子式时即停止,得到一个子结构。在对所有分子式形成了子结构集合后,去掉集合中的相同子结构,即等同的子结构用同一个原子序列表示;相同子结构有两种情况:某子结构的逆序排列是其相同子结构,环状子结构中任意原子作为起始点,均为相同子结构;
把分子式得到的一系列子结构哈希映射到一个由32位整数组成的数组上,数组长度可以设置为32或32的整数倍,得到分子式的哈希表示;例如:分子式”CCC(=O)Cl”的分词,其中1、2表示一价、二价化学键:
C 1 C
C 1 C 1 C
O 2 C
O 2 C 1 C
O 2 C 1 C 1 C
Cl
Cl 1 C
Cl 1 C 1 C
Cl 1 C 1 C 1 C
Cl 1 C 2 O
该分子式的图形如图2所示,其哈希表示如下,其中每个整数都是32位的:
131072 0 0 0 0 0 134217728 0 16 0 768 0 0 0 0 0 0 0 0 327681073745920 0 0 0 0 0 0 0 0 0 0 131072。
分子式得到的一系列子结构作为分子式的索引,建立es数据库中所有分子式的倒排索引。
第二步:检索过程:
1.检索时对输入的分子式进行上述分词,得到分子式的子结构集合,并用上述过程计算分子式的哈希表示;
2.用子结构集合在倒排索引中查找匹配项,即查找包含子结构集合中任一子结构的分子式,得到es数据库中匹配的分子式集合T;
3.用输入分子式的哈希表示,与得到的分子式集合T对应的哈希表示一一比较,得到输入分子式与分子式集合T中每个分子式之间的相似度;两个分子式的相似度的计算方式为:每个分子式的哈希表示均看作一个二进制的大整数,具体为:将数组中的每个32位整数依次转化为二进制后,拼接为一个二进制的大整数;将两个分子式对应的两个大整数做按位(bit)与操作得到一个相同长度的二进制大整数A,计算A中1的个数An;做按位或操作得到一个相同长度的二进制大整数B,计算B中1的个数Bn;An/Bn即得到两个分子式的相似度;
4.根据输入分子式与分子式集合T中每个分子式的相似度,按照应用需要,输出T中相似度大于阈值的分子式,或按照相似度从大到小排列,输出前n个最相似的分子式;
由于步骤3中比较的范围为集合T,而不是数据库中全部的分子式,减少了比较的次数,加快了分子式的检索。本发明将一步检索拆成两步,在第一步中通过利用倒排索引的检索减少了第二步比较的次数,进一步加快了检索的过程。
以上所述仅为本发明的较佳实施举例,并不用于限制本发明,凡在本发明精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于es倒排索引的化学分子式检索方法,其特征在于,包括以下步骤:
步骤1:对es数据库中的分子式建立倒排索引和哈希表示,具体为:
1.1对es数据库中的每个分子式进行分词,得到分子式的子结构集合,子结构集合包含2个以上用化学键相连的原子,或单个的除常用原子以外的原子;
1.2去掉子结构集合中的相同子结构;
1.3把分子式得到的一系列子结构哈希映射到一个由32位整数组成的数组上,得到分子式的哈希表示;分子式得到的一系列子结构作为分子式的索引,建立es数据库中所有分子式的倒排索引。
步骤2:检索过程,具体为:
2.1检索时对输入的分子式进行分词,得到分子式的子结构集合,计算分子式的哈希表示;
2.2用子结构集合在倒排索引中查找匹配项,即查找包含子结构集合中任一子结构的分子式,得到es数据库中匹配的分子式集合T;
2.3用输入分子式的哈希表示,与得到的分子式集合T对应的哈希表示一一比较,得到输入分子式与分子式集合T中每个分子式之间的相似度;
2.4根据输入分子式与分子式集合T中每个分子式的相似度,按照应用需要,输出T中相似度大于阈值的分子式,或按照相似度从大到小排列,输出前n个最相似的分子式。
2.根据权利要求1所述的一种基于es倒排索引的化学分子式检索方法,其特征在于,所述步骤1中,所述子结构的形成具体为:子结构是通过遍历分子式的原子树形成的,即依次从每一个原子A开始向前、向后遍历,将遍历到的全部原子、化学键和原子A一起形成子结构;遍历停止时即形成一个子结构,子结构记录了形成过程中遍历到的原子、原子之间的化学键、以及多个原子是否形成了环状结构。
3.根据权利要求2所述的一种基于es倒排索引的化学分子式检索方法,其特征在于,所述步骤1中,遍历停止条件有两个:①当遍历到的下一个原子与当前的遍历过的几个原子形成环状时,子结构形成过程即停止,得到一个子结构;②当遍历的原子数量达到7个或已经顺序遍历完当前的分子式时即停止,得到一个子结构。
4.根据权利要求1所述的一种基于es倒排索引的化学分子式检索方法,其特征在于,所述步骤1中,所述相同子结构有两种情况:某子结构的逆序排列是其相同子结构,环状子结构中任意原子作为起始点,均为相同子结构。
5.根据权利要求1所述的一种基于es倒排索引的化学分子式检索方法,其特征在于,所述步骤1中,数组长度设置为32或32的整数倍。
6.根据权利要求1所述的一种基于es倒排索引的化学分子式检索方法,其特征在于,所述步骤2中,两个分子式的相似度的计算方式为:每个分子式的哈希表示均看作一个二进制的大整数,具体为:将数组中的每个32位整数依次转化为二进制后,拼接为一个二进制的大整数;将两个分子式对应的两个大整数做按位(bit)与操作得到一个相同长度的二进制大整数A,计算A中1的个数An;做按位或操作得到一个相同长度的二进制大整数B,计算B中1的个数Bn;An/Bn即得到两个分子式的相似度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811584455.7A CN109686413A (zh) | 2018-12-24 | 2018-12-24 | 一种基于es倒排索引的化学分子式检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811584455.7A CN109686413A (zh) | 2018-12-24 | 2018-12-24 | 一种基于es倒排索引的化学分子式检索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109686413A true CN109686413A (zh) | 2019-04-26 |
Family
ID=66188149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811584455.7A Pending CN109686413A (zh) | 2018-12-24 | 2018-12-24 | 一种基于es倒排索引的化学分子式检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109686413A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110390997A (zh) * | 2019-07-17 | 2019-10-29 | 成都火石创造科技有限公司 | 一种化学分子式拼接方法 |
CN110400607A (zh) * | 2019-07-17 | 2019-11-01 | 杭州费尔斯通科技有限公司 | 一种分子式库的扩展方法 |
CN111897987A (zh) * | 2020-07-10 | 2020-11-06 | 山西大学 | 一种基于演化计算多视图融合的分子结构图检索方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436545A (zh) * | 2011-10-13 | 2012-05-02 | 苏州东方楷模医药科技有限公司 | 一种基于gpu加速的化学结构多样性分析方法 |
CN105490830A (zh) * | 2015-05-12 | 2016-04-13 | 哈尔滨安天科技股份有限公司 | 一种网络拓扑图中查找环状结构的方法及系统 |
CN107273529A (zh) * | 2017-06-28 | 2017-10-20 | 武汉图信科技有限公司 | 基于哈希函数的高效层级索引构建及检索方法 |
CN108846016A (zh) * | 2018-05-05 | 2018-11-20 | 复旦大学 | 一种面向中文分词的搜索算法 |
-
2018
- 2018-12-24 CN CN201811584455.7A patent/CN109686413A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436545A (zh) * | 2011-10-13 | 2012-05-02 | 苏州东方楷模医药科技有限公司 | 一种基于gpu加速的化学结构多样性分析方法 |
CN105490830A (zh) * | 2015-05-12 | 2016-04-13 | 哈尔滨安天科技股份有限公司 | 一种网络拓扑图中查找环状结构的方法及系统 |
CN107273529A (zh) * | 2017-06-28 | 2017-10-20 | 武汉图信科技有限公司 | 基于哈希函数的高效层级索引构建及检索方法 |
CN108846016A (zh) * | 2018-05-05 | 2018-11-20 | 复旦大学 | 一种面向中文分词的搜索算法 |
Non-Patent Citations (2)
Title |
---|
李俊: "《高效的稠密子图查询算法的研究与实现》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
邹磊: "《图数据库中的子图查询算法研究》", 《中国博士学位论文全文数据库(信息科技辑)》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110390997A (zh) * | 2019-07-17 | 2019-10-29 | 成都火石创造科技有限公司 | 一种化学分子式拼接方法 |
CN110400607A (zh) * | 2019-07-17 | 2019-11-01 | 杭州费尔斯通科技有限公司 | 一种分子式库的扩展方法 |
CN110390997B (zh) * | 2019-07-17 | 2023-05-30 | 成都火石创造科技有限公司 | 一种化学分子式拼接方法 |
CN111897987A (zh) * | 2020-07-10 | 2020-11-06 | 山西大学 | 一种基于演化计算多视图融合的分子结构图检索方法 |
CN111897987B (zh) * | 2020-07-10 | 2022-05-31 | 山西大学 | 一种基于演化计算多视图融合的分子结构图检索方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11947502B2 (en) | Concurrent enumeration of multiple hierarchies in a database environment | |
CN109686413A (zh) | 一种基于es倒排索引的化学分子式检索方法 | |
CN103823823B (zh) | 基于频繁项集挖掘算法的反规范化策略选择方法 | |
CN105302803B (zh) | 一种产品bom差异分析与同步更新方法 | |
CN103218423B (zh) | 数据查询方法及装置 | |
CN106570128A (zh) | 一种基于关联规则分析的挖掘算法 | |
KR101617696B1 (ko) | 데이터 정규표현식의 마이닝 방법 및 장치 | |
CN106021541A (zh) | 区分准标识符属性的二次k-匿名隐私保护算法 | |
CN106897374B (zh) | 一种基于轨迹大数据最近邻查询的个性化推荐方法 | |
CN102902826B (zh) | 一种基于基准图像索引的图像快速检索方法 | |
CN105630803B (zh) | 文档型数据库建立索引的方法和装置 | |
CN109902142B (zh) | 一种基于编辑距离的字符串模糊匹配和查询方法 | |
CN100354863C (zh) | 大规模关键词匹配的方法和系统 | |
CN105938479B (zh) | 一种关系表与非关系表的结构转换方法 | |
CN102169491B (zh) | 一种多数据集中重复记录动态检测方法 | |
CN103365992A (zh) | 一种基于一维线性空间实现Trie树的词典检索方法 | |
CN108241713A (zh) | 一种基于多元切分的倒排索引检索方法 | |
CN109902143A (zh) | 一种基于密文的多关键字扩展检索方法 | |
CN103761286B (zh) | 一种基于用户兴趣的服务资源检索方法 | |
US7472130B2 (en) | Select indexing in merged inverse query evaluations | |
CN109933589B (zh) | 用于数据汇总的基于ElasticSearch聚合运算结果的数据结构转换方法 | |
CN109828965B (zh) | 一种数据处理的方法及电子设备 | |
CN105183792A (zh) | 一种基于局部敏感哈希的分布式快速文本分类方法 | |
CN102708285B (zh) | 基于复杂网络模型并行化PageRank算法的核心药物挖掘方法 | |
CN108647209B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190426 |
|
WD01 | Invention patent application deemed withdrawn after publication |