【科技赋能】基于Elasticsearch的基金筛选器

发布于: 雪球转发:0回复:0喜欢:0

POWER3 高级搜索功能

基金的表现维度有多个方面,包括收益率、风险、波动性、夏普比等。通过综合考量这些维度,投资者可以更全面地评估基金的表现,选择符合自身投资目标和风险偏好的基金,从而实现更有效的资产配置和投资组合管理。

在云通的产品Power3中,为了满足投资者此方面的需求,我们支持投资者通过各个维度、上百个指标对公募基金进行检索。这些指标包括了基金的基本信息、标签评价、收益/风险指标、持仓信息等,在有时效性的指标类型中我们还支持相应时间的搜索。

同样的,显示搜索结果时,我们也支持显示基金的数百个不同属性筛选。

云通主要使用了Elasticsearch技术来实现高级搜索。

1.Elasticsearch简介

Elasticsearch(简称ES)是一个开源的分布式搜索和分析引擎,具有快速、弹性、可扩展和全文检索等功能。它支持实时数据索引、复杂查询、全文搜索、数据分析等功能,广泛用于构建实时搜索引擎、日志分析、数据可视化等场景。Elasticsearch基于Lucene库构建,提供了丰富的RESTful API接口、丰富的查询语言DSL,让用户可以方便地对海量数据进行快速搜索和分析。

2.Elasticsearch的发展历程

Elasticsearch(简称ES)的起源可以追溯到Shay Banon在2010年创建的开源项目"Compass"。Compass是一个基于Java的全文搜索引擎,但Shay Banon觉得它的功能有限并且不够灵活。于是他开始着手开发一个全新的搜索引擎,这个项目最初的名称为"SimpleDB"。随着开发的进行,Shay Banon决定将它重命名为"Elasticsearch",以强调其在分布式搜索和分析方面的能力,同时也代表了其可扩展性和灵活性。

Elasticsearch最初旨在提供一个开源、分布式、实时的搜索和分析引擎,以满足日益增长的信息搜索和分析需求。随着时间的推移,Elasticsearch迅速发展成为一个功能强大且受欢迎的工具,被广泛应用于各种应用程序、系统和业务场景中。目前,Elasticsearch已成为Elastic公司(前身为Elasticsearch公司)开源产品套件的核心组件之一,与Logstash、Kibana和Beats构成了ELK Stack(现已更名为Elastic Stack)的基础。

3.Elasticsearch优缺点

Elasticsearch(ES)相对于同类产品而言,具有以下优点:出色的横向扩展性、高效的分布式搜索和实时分析能力、强大的全文搜索功能、易于使用的API和丰富的生态系统支持。

然而,ES也存在一些缺点:对硬件要求较高、在处理大规模数据时需要适当的配置和优化、学习和使用ES的学习曲线较陡。此外,与一些专用的搜索引擎产品相比,ES的一些高级功能(如复杂的关系型查询)可能有所限制。

4.Elasticsearch的储存原理

Elasticsearch的存储原理主要基于倒排索引(Inverted Index)和Apache Lucene引擎的数据结构。

倒排索引:Elasticsearch使用倒排索引来实现快速的全文搜索功能。在倒排索引中,每个单词或关键词都映射到存储了包含该单词的文档的列表。同时,倒排索引还记录了每个文档中该单词出现的位置信息,以支持精确的搜索和相关性排序。

数据分片:为了实现水平扩展和分布式存储,Elasticsearch将索引中的数据划分为多个数据分片(shard)。每个分片是一个独立的Lucene索引,包含部分数据和倒排索引。数据分片可以分布在不同的节点上,实现数据的并行处理和分布式存储。

副本机制:为了提高系统的容错性和可用性,Elasticsearch支持为每个数据分片创建多个副本(replica)。副本是分片的复制品,存储在不同的节点上。在主分片不可用时,副本可以自动接管服务,确保数据的可靠性和持久性。

写入流程:当有新数据写入时,Elasticsearch首先将数据进行分词和索引,并根据文档的字段值构建倒排索引。然后将文档存储在主分片上,并复制到相应的副本中。写入操作保证数据的一致性和可靠性。

读取流程:在进行搜索时,Elasticsearch根据查询请求在倒排索引中定位符合条件的文档,并从主分片或副本中检索数据。数据的检索和返回是并行进行的,从而提高了搜索效率和响应速度。

通过倒排索引、数据分片和副本机制的结合,Elasticsearch实现了高效的数据存储和检索功能。这种存储原理使得Elasticsearch能够应对大规模数据的存储需求。这也是为什么高级搜索使用Elasticsearch而非mysql的原因,mysql更善于处理关系型数据。

5.Elasticsearch的搜索流程

解析查询语句:首先,Elasticsearch 会解析用户的查询请求,将其转换为内部的查询表示。这个过程包括解析查询语句的语法、解析查询参数、验证查询语句的合法性等。

生成查询计划:解析查询语句后,Elasticsearch 会生成一个查询计划。查询计划描述了如何在倒排索引上执行查询,包括哪些词项需要查询、如何组合词项的查询结果等。

执行查询:有了查询计划后,Elasticsearch 就可以在倒排索引上执行查询了。这个过程包括查找词项的倒排列表、计算文档和查询的相关性、生成候选结果集等。

生成查询结果:最后,Elasticsearch 会根据候选结果集和查询参数,生成最终的查询结果。这个过程包括排序候选结果、生成摘要、分页等。

Elasticsearch与高级搜索(复杂基金筛选器)的实现

云通是如何利用Elasticsearch来实现高级搜索的呢?

图:数据处理流程

1.利用已有的数据,生成一张符合高级搜索需求的宽表。

将基金的一千多个相关字段都储存在一张表里,是高级搜索的特殊需求,这是不符合寻常储存规律的。正常情况下,将同一类数据存储在一张表里更适合开发工作,例如,我们会将基金的基本信息(编号、成立时间、基金公司等)存在一张表内,将基金的收益率存在另一张表内。

所以,实现的第一步就是将基金的所有属性合并成一张宽表。

我们用非常熟悉的一只基金做简单的演示吧,下图是华夏成长混合(000001)的三个基本信息。

下图是这支基金2024-03-01的最新净值和复权累计净值。

这两类信息是存储在两张不同的表里的。我们将这两个dataframe按基金编号进行合并,得到下图。

这样就完成了最简易的一次合并。在实际操作中,将所需的来自几十张不同表的一千多个字段处理、连接后,得到我们需要的宽表。

2.将表中的数据注入进Elasticsearch中

我们给每条记录生成唯一的索引,并将宽表转化成字典格式形式,加入必须的字段指定注入的位置,然后将大量数据注入Elasticsearch中。

至此,数据部分的流程已经完成了。

3.搜索

用户在前端进行按自己的需求进行搜索。例如,我们搜索2023-03-31时,云通评价为四星,且在2023-06-30时评价升级为五星的基金。

在后端,会将每一次搜索分开执行,并在每一次搜索后与上一次的结果取交集。

第一次搜索时,只搜索2023-03-31时,云通评价为四星的基金。第二次搜索时,将上一次搜索的结果作为限制搜索的新条件,在其中搜2023-06-30时评价升级为五星的基金,最后获得结果。不论搜索有多么复杂,都按这样的流程进行操作。

按用户需求和搜索得到的基金编号,从Elasticsearch中获取相应字段并返回结果。

接下来我们举一个比较复杂的搜索例子。

我们需要搜索一种在2024-01-31 波动率从0至1的、本月收益率在1%到3%之间、在2023-12-31时综合评价为四星、成立年限在1到3年之间的基金。

此时将一共执行四次搜索、不断取交集,最终返回13条结果。

后续优化

云通基金筛选器下一步的优化方向是进一步提升用户体验,将用户操作的基金筛选器转化为支持自然语言式的查询结果。

例如:

用户输入2022年持仓超过5%的年化收益率大于8%的公募基金有哪些?

具体技术方案为结合大模型技术,将用户的输入查询自然语言转化为Elasticsearch可设别的半结构化Query语句,再由Elasticsearch实现查询功能。

图:优化方案

免责声明

上海琻瑢信息科技有限公司(以下简称”云通”)以尽责的态度,独立、客观地出具本报告。本报告依据公开的信息来源,力求清晰、准确地反映云通的研究观点。云通的利益不与报告中出现的任何机构与基金产品有直接或间接的关系。本报告不构成任何投资参考意见,亦不构成财务、法律、税务、投资咨询意见或其他意见,对任何因直接或间接使用本文所涉及的信息和内容或者据此进行投资所造成的一切后果或损失,云通不承担任何法律责任。

—可以在这里找到我们—

—推荐阅读—

【fofpower操作手册】

引“金”据“典”——云通基金数据字典3.0正式上线!

智能升级!揭秘资产配置新玩法,公募基金一键筛选,主题风格任你切换!

私募代销数据已送达,请查收!

基金池是,但不仅仅是资产配置的工具箱

助力投研,用Power赋予你power!

选基不能“拍脑袋”,起码看看市场基本面吧!

致力于成为业内的六边形战士!

【实战篇】资产配置“刺激战场”,这可以是演习!

【实战篇】缚“基”之力MAX,大家都在用这个......

【实战篇】一键穿透,深挖底层标的,真正助力您的基金投顾业务

【云通动态】

【云通动态】冯美云:源于场景,始于数据,终于价值——基金配置领域的思考和实践

【云通动态】蒋伟伟:百亿量化私募表现出彩,规模扩张较往年提速

【圆桌实录】FOF的机遇与挑战

【演讲实录】朱旭:FOF,让投资成为美好的事

【演讲实录】蒋伟伟:天下大事必作于细——云通服务体系3.0

【演讲实录】胡月晓:变化的世界——我们面对的,唯我们面对

【演讲实录】于鹏:公募基金量化研

【演讲实录】周乐峰:数字化背景下财富管理转型的思考

【云通动态】2023年云通数科第六届“云+FOF”生态圈共建峰会圆满结束!

【基金研究】

【资产配置】是时候回归资产配置的本源了

【基金研究】“江山代有才人出”,明星基金经理迭代史

回撤风波之下,要对量化策略“祛魅”了吗?

【基金研究】可能你没注意,这些基金经理又默默离职了

【基金研究】如何选择夏普系风格因子?(商品篇)

【重磅原创】2023年中国私募证券基金年度报告:严冬过尽春蓓蕾,守得云开见月明

2023年基金行业大事记回顾

【基金研究】兜兜转转3000点,还是回归“固收+”

【基金研究】“浪里淘沙始到金”,笑过五年的基金确实不容易!

【基金研究】基金经理离职再套“紧箍咒”,行业刮起“整业风”

【基金研究】公募基金公司中,主动权益类规模管理的“扛把子”基金经理

【科技赋能】大语言模型在信息抽取领域的应用(一):基金净值序列解析

【基金研究】公募离职人数再添一笔,百亿基金经理厉叶淼离职!

【基金研究】探秘高星级基金:关于基金业绩持续性的探讨

【基金研究】“每个行业都永远有人年轻着”——新晋基金经理盘点

【访谈实录】李路博士:学术研究对高频交易的认识

【绩优基金榜单】

绩优基金月榜单:首战出师不利,2024还能赚钱吗?

【超重磅】2023绩优基金年度榜单发布:大涨58.56%!北证主题加持下的公募主动权益冠军顾鑫峰!

绩优基金11月榜单:年内冠军基金尘埃未定,北交所主题基金突出重围

绩优基金10月榜单:“固收+”基金获市场关注;周思越年内逆市大赚超50%

绩优基金9月榜单:人工智能、传媒等主题基金年内依然强势;万家黄海重回高光时刻

绩优基金8月榜单:东方区域发展登顶“冠军基”,重仓AI的基金下半年回撤明显

绩优基金7月榜单:“半程赢家”刘元海持续领跑,明星青睐人工智能、半导体等赛道

【私募基金月报】

【私募基金月报】开年首月市场波动加剧,百亿私募“大换血”又现新面孔!

【私募基金月报】11月指数增强策略强势领跑;年内超半数百亿私募斩获正收益

【私募基金三季报】10月私募各策略纷纷折戟 ,小微盘指增备案热情不减

【私募基金月报】百亿私募年内超半数实现正收益;私募代销指增策略受追捧

【私募基金月报】7月管理期货策略业绩反弹开启“加速”模式,百亿私募洗牌有喜有忧

【重磅原创】2023年中国私募证券基金半年度报告:风禾尽起 芳草未歇

【量化月报】

【公募量化月报】中证1000指增有望笑到最后,哪位基金经理笑得最好年末拭目以待

【公募量化月报】公募量化基金规模扩张,马芳在管主动量化基金三季度受大举增持

【公募量化月报】公募指增1000仍“吃香”,9月小微盘指增迎布局盛宴

【公募量化月报】年内主动量化基金规模增长明显,8月小盘股指增迎配置良机

【公募量化月报】AI加持,年内主动量化基金大行其道

【云通基金经理报告】

【云通基金经理报告】迷你基“修炼手册”——国金基金马芳

【云通基金经理报告】重返公募,老将出招——招商基金朱红裕

【云通基金经理报告】新能源苏醒,1月权益基金冠军——创金合信曹春林