LTR 插件使用笔记

kettle常用插件     最近在用kettle,分享一下我常用的一些插件。 Kettle是一款国外开源的ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。 Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出 1.js插件 2.常用的分割,格式转换,截取都有,而且kettle的这些函数里面还配有样例,很... 阅读详情

LTR 插件使用

1、初始化默认的特征仓库
一个特征仓库就是一个es的索引,可以存储特征和模型的元数据。

默认的特征仓库,就是

	PUT _ltr
	DELETE _ltr

2、特征和特征集合
特征集合是LTR在es中发生行为的地方。
创建特征集合,可以用POST,并给出特征集合的名字和特征列表

_ltr是索引
_featureset是type
下面的document存储了对应的特征定义

POST _ltr/_featureset/test
{
   "featureset": {
        "features": [
            {
                "name": "title_query",
                "params": [
                    "keywords"
                ],
                "template_language": "mustache",
                "template": {
                    "match": {
                        "title": "{{keywords}}"
                    }
                }
            },
            {
                "name": "custom_title_query_boost",
                "params": [
                    "some_multiplier",
                    "ltr_param_foo"
                ],
                "template_language": "script_feature",
                "template": {
                    "lang": "painless",
                    "source": "(long)params.default_param * params.feature_vector.get('title_query') * (long)params.some_multiplier * (long) params.param_foo",
                    "params": {
                        "default_param" : 10.0,
                        "some_multiplier": "some_multiplier",
                        "extra_script_params": {"ltr_param_foo": "param_foo"}
                    }
                }
            }
        ]
   }
}

分析一下LTR插件怎么利用的索引
首先,ltrstore是一个索引,它的mapping如下:

GET .ltrstore/_mapping

{
  ".ltrstore" : {
    "mappings" : {
      "store" : {
        "dynamic" : "strict",
        "properties" : {
          "feature" : {
            "type" : "object",
            "enabled" : false
          },
          "featureset" : {
            "type" : "object",
            "enabled" : false
          },
          "model" : {
            "type" : "object",
            "enabled" : false
          },
          "name" : {
            "type" : "text",
            "fields" : {
              "prefix" : {
                "type" : "text",
                "analyzer" : "name_prefix",
                "search_analyzer" : "name_prefix_search"
              }
            },
            "analyzer" : "keyword"
          },
          "type" : {
            "type" : "keyword"
          }
        }
      }
    }
  }
}

所以以下返回一样

GET .ltrstore/store/_search
GET _ltr/_featureset

同理,以下也是一样的

GET .ltrstore/store/featureset-test   //特征集合的内容就是一个document	
GET _ltr/_featureset/test   //返回某个特征集合的内容

也就是说LTR把索引下的分类映射成了object的document来存储

同样的,往里写入时,可以自己添加一些字段,就一样了

POST .ltrstore/store/featureset-singletest
{
  "name":"singletest",      //自己添加的
  "type":"featureset",       //自己添加的
  "featureset": {
    "name":"singletest",    //自己添加的
        "features": [
            {
                "name": "title_query",
                "params": [
                    "keywords"
                ],
                "template_language": "mustache",
                "template": {
                    "match": {
                        "title": "{{keywords}}"
                    }
                }
            },
            {
                "name": "custom_title_query_boost",
                "params": [
                    "some_multiplier",
                    "ltr_param_foo"
                ],
                "template_language": "script_feature",
                "template": {
                    "lang": "painless",
                    "source": "(long)params.default_param * params.feature_vector.get('title_query') * (long)params.some_multiplier * (long) params.param_foo",
                    "params": {
                        "default_param" : 10.0,
                        "some_multiplier": "some_multiplier",
                        "extra_script_params": {"ltr_param_foo": "param_foo"}
                    }
                }
            }
        ]
   }
}
Elasticsearch搜索进阶:BM25结合LTR实现智能排序实战 在信息检索系统中,相关性排序是核心挑战。传统方法如BM25算法,基于词频和逆文档频率进行统计匹配,为海量文本搜索提供了稳定基础。其原理是通过计算查询词与文档的统计相关性来打分,技术价值在于高效、可解释性强,广泛应用于通用搜索引擎。然而,面对复杂的业务场景和个性化需求,纯文本统计模型存在局限。此时,机器学习排序技术应运而生,它能够融合多种信号,如文本相关性、业务指标和用户上下文,实现更智能的排序。本文聚焦于在Elasticsearch中,将BM25的快速召回与LTR的精排能力相结合,通过两阶段架构和特征工程, 阅读详情

相关推荐

Elasticsearch搜索优化:BM25与LTR混合架构实战指南

在信息检索领域,相关性排序是提升搜索体验的核心技术。传统基于统计的词袋模型(如BM25)擅长处理字面匹配,通过词频和逆文档频率快速筛选相关文档,但其在理解语义、上下文及复杂业务规则方面存在局限。为弥补这一不足,学习排序技术应运而生,它利用机器学习模型综合多维度特征进行精细化重排序,从而显著提升顶部结果的精准度与用户满意度。在工程实践中,常采用级联架构,由BM25负责高效召回,LTR进行智能精排,二者协同工作。这种混合模式在电商推荐、内容平台等场景中价值显著,能有效融合用户行为、业务规则等特征。本文以Elas

congbao6525的博客 570

ETL工具——kettle插件开发(基础篇)

<br />在我们做ETL工作的时候,在某些项目中往往会遇到一些特别的流程任务,kettle原有的流程处理节点已经不能满足我们的要求,这时候我们就需要定制流程处理节点了。定制流程节点主要是针对数据的管理、数据的验证和某些特别文件数据的提取。大家通过查看kettle源代码,就可以知道怎样去创建你自己的kettle插件了。<br /> <br />这篇文章主要告诉大家在kettle 4.0版本上怎样开发一个transformation类型的简单插件,这个插件可以接受任何记录流,然后在流后面再添加一个带值的字段,

天将降大任于是人 6944

QGIS版本选择指南:LTR、LR、DEV三大版本区别与OsGeo4w安装实操

本文详细解析了QGIS长期发行版、最新版和开发版三大版本的核心区别与适用场景,帮助用户根据项目稳定性与功能需求做出明智选择。同时,提供了通过OsGeo4w进行专业安装与多版本管理的实操指南,确保构建稳定高效的GIS工作环境。

p5l2m9n4o6q的博客 253

Elasticsearch7 ltr插件使用说明

参考: github demo:https://github.com/o19s/elasticsearch-learning-to-rank/tree/es_7_6_2/demo 文档:https://elasticsearch-learning-to-rank.readthedocs.io/ 1、 正常测试步骤安装demo流程就行,这里主要讲特征load 样式和collect加载成libsvm格式 步骤: 1)先执行load_features.py,这是获取构建需要的具体那些特征(通过加载1,2,3,4j

weixin_42357472的博客 1737

QGIS版本选择与OsGeo4w安装详解:LTR vs LR vs DEV

本文详细解析了QGIS的LTR、LR和DEV三种版本的核心区别与适用场景,并提供了通过OsGeo4w安装管理器进行多版本安装与管理的完整指南。文章重点介绍了OsGeo4w的安装方法、命令行高级操作以及如何构建可复现的GIS工作环境,帮助用户根据项目需求在稳定性和新功能之间做出明智选择。

stone的博客 626

《QGIS快速入门与应用基础》002:QGIS版本迭代与LTR版本特性

摘要: QGIS作为开源GIS软件的标杆,历经20余年迭代,形成LTR(长期支持)与普通版本双轨机制。LTR版本以稳定性为核心优势,18个月更新周期、2-3年维护期,适合新手及企业用户,避免频繁升级与兼容性问题;普通版本则侧重功能尝鲜,但稳定性较低。推荐的LTR版,兼顾遥感处理、大数据性能与系统适配。选择时需权衡功能与稳定,新手优先LTR版本可减少90%学习障碍。版本查看通过菜单栏「帮助」或启动界面,升级时需注意数据备份与多版本路径隔离。LTR是成熟核心功能的集大者,是入门的最优选择。

LuckyHanMo的博客 551

数据管理之特征仓库

feast特征仓库

crazybean_lwb的博客 1262

《QGIS快速入门与应用基础》006:LTR版本(长期支持版) — 稳定优先的选择

详细解析了QGIS两大版本类型的特点与适用场景: LTR版本(长期支持版):提供18个月官方支持,仅修复安全漏洞和关键bug,确保稳定性。适合企业、科研团队和新手用户,具有超长支持周期、精准更新策略和完善文档配套等优势。 最新版本:功能更新快,适合开发者和尝鲜用户,但稳定性相对较低,支持周期仅6个月。 文章通过对比表格和决策流程图,帮助用户根据实际需求选择合适版本,并提供了不同操作系统的下载建议。

LuckyHanMo的博客 258

Tilt: Firefox的3D化插件

ilt 是一个将页面按照文档树的结构3D化的Firefox插件。它基于WebGL,看起来非常的酷,今年七月当 tilt发布第一个alpha版 的时候,我就被它惊艳的效果吸引了。时隔3月之后,这个插件发布了新的更新,同时Mozilla也发了篇新文章 Debugging and editing webpages in 3D 。 下面是我的网站在Firefox7下使用tilt的效果,3D...

风一样的飞 2214

微信小程序返回按钮的隐藏玩法:用onShow实现数据自动刷新(附完整代码)

本文深入探讨了微信小程序中用户点击返回按钮后,如何利用onShow生命周期函数实现页面数据的自动刷新。文章对比了onLoad与onShow的差异,提供了从基础的本地存储标记到进阶的EventChannel事件通信,再到状态管理库的多种解决方案,并附有完整的代码示例,帮助开发者构建流畅的用户体验。

agile9scrum的博客 925

黑苹果从入门到精通:最详细的VMware安装macOS教程

前言 不知为何,以前我发的两篇关于黑苹果的文章或没过审或被删除,最近SMZDM上有不少优质的黑苹果文章发出来,貌似禁令已开,前段时间在一篇写的很不错的黑果文章下吹牛说今年要写一个系列,故有了这篇文章作为系列的开头。 系列的名字起的有点俗,叫做xxx从入门到精通,但是我很喜欢,相信过半的黑果群众都是程序员,作为教程来说这个名字俗但是好用,我也希望这个系列能像其它入门到精通系列一样,让大家学到东西...

La victoria的博客 14万+

在 Elasticsearch 中使用 LTR 参与检索

本文介绍了在搜索系统中使用二阶段排序(LTR)的两种实施方案。第一阶段采用BM25等高召回方法,第二阶段通过LTR模型(XGBRanker/LambdaMART)进行精细排序,可提升10-30%点击率。文章详细讲解了两种实现方式:方案A将LTR作为rescorer,适用于8.12版本;方案B作为retriever(9.1+新特性),更适合与RRF/混合查询配合使用。实践建议包括合理设置window_size(100-200)、特征调优、性能优化和灰度发布策略。两种方案核心参数相同,都能实现个性化、可学习的多

hello.reader 636

Pytorch transformers tokenizer 分词器词汇表添加新的词语和embedding

NLP添加新词汇

7322

ES-LTR粗排模块

Elasticsearch学习排名插件使用机器学习提高搜索相关性排名。它为维基媒体基金会和Snagajob等地方的搜索提供了动力!

kk的博客 635

超级超级细的CLIP官方模型解读及代码逐行讲解

本文详细解析了OpenAI开源的CLIP模型代码架构。文章首先介绍模型概念,包括训练时通过对称损失计算图像-文本相似度,预测时通过余弦相似度匹配最佳文本。随后重点解析各模块代码实现:LayerNorm改进、QuickGELU激活函数、Transformer编码器结构、ViT图像编码器的特征提取过程、文本编码器的掩码机制和特征投影。最后阐述CLIP整体架构如何整合视觉和文本编码器,并详细说明了特征归一化和相似度计算的关键实现。全文通过代码级解读帮助读者深入理解CLIP模型的实现细节。

m0_64595440的博客 2425

Ollama教程——模型:如何将模型高效导入到ollama框架

本教程详细介绍了如何将GGUF、PyTorch和Safetensors格式的模型导入到ollama框架中。通过一系列步骤,从环境准备、模型转换和量化,到最终的模型创建和运行,我们为开发者提供了一个清晰的指南。此外,我们还探讨了如何发布模型到ollama平台,使得模型可以被更广泛地分享和应用。ollama框架提供了一个灵活、高效的解决方案,帮助开发者在各种环境中部署和运行机器学习模型。无论您是想将现有模型快速部署到生产环境,还是希望探索新的模型架构,ollama都能为您提供所需的工具和资源。

walkskyer的博客 1万+

***LTR

参考博文: 机器学习排序LTR入门——线性模型 LTR学习排序 Learning to Rank 小结

u014765410的博客 900

52、切换线性动态系统:原理、挑战与高斯和滤波解决方案

本文介绍了切换线性动态系统(SLDS)的基本原理及其在复杂时间序列建模中的应用。SLDS结合了隐马尔可夫模型的离散状态切换与线性动态系统的连续状态演化,适用于系统动态发生跳跃的场景,如化工过程监测和金融市场分析。由于精确推理在计算上不可行,文章重点阐述了高斯和滤波这一近似方法,通过有限高斯混合来逼近后验分布,并详细描述了其递归更新、权重计算与组件合并流程。同时讨论了性能评估、优化策略及常见问题的解决方案,并展望了SLDS与深度学习、在线学习和多模态融合的未来发展方向。

algae的博客 161

如何轻松配置Handsontable数据表格的布局方向:从LTR到RTL的完整指南

Handsontable是一款功能强大的JavaScript数据表格库,它提供了类似电子表格的外观和操作体验,并且支持React、Angular和Vue等主流前端框架。本文将详细介绍如何在Handsontable中配置布局方向(Layout Direction),帮助你轻松实现从左到右(LTR)和从右到左(RTL)的布局切换,满足不同语言和地区的使用需求。 ## 什么是布局方向(Layout D

gitblog_00813的博客 470

【26美赛C题】Data With The Stars第三问[影响因素分析模型]思路与代码

本文针对2026美赛C题《Dancing with the Stars》第二问,提出了一套系统的影响因素分析框架。通过多元回归模型和固定效应模型,量化分析了明星特征(年龄、职业等)、舞者搭档和比赛周次对评分的影响,发现评委与观众偏好存在差异。研究采用方差分解评估舞者效应占比,通过最优年龄分析和交互效应检验揭示非线性关系。最后运用差异性检验和结构方程模型(SEM)比较评委与观众偏好,为比赛结果预测和选手优化提供量化依据。该分析框架可系统揭示比赛成绩的关键驱动因素。

一键难忘的博客 756

提示工程从初级到高级:如何评估提示词的鲁棒性?架构师分享测试方法

鲁棒性(Robustness)原本是工程领域的概念,指系统在“非理想条件”下保持性能稳定的能力。输入鲁棒性:面对不规范、有噪音、格式变异的用户输入,提示能否引导模型输出正确结果?模型鲁棒性:同一提示在不同大模型(或同一模型的不同版本)下,输出是否一致?场景鲁棒性:在边界场景(极端case、歧义case、多任务混合)下,提示能否保持逻辑一致性?提示词V1:请将以下用户评论分类为「正面」「中性」或「负面」:{comment}。要求:输出唯一类别,不要额外说明。

小程序开发 496

探索LTR技术,拥抱智能搜索新时代!

探索LTR技术,拥抱智能搜索新时代! 在信息爆炸的时代,高效的搜索机制成为我们获取所需内容的关键。Hello LTR项目就是这样一个宝藏,它为Elasticsearch、Solr和OpenSearch提供了完整的后期训练排名(Learning-to-Rank, LTR)解决方案。该项目旨在帮助开发者轻松地掌握和应用LTR技术,从而提升搜索引擎的性能。 项目介绍 Hello LTR是一个面向开发者的...

gitblog_00026的博客 621

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

ES6.1.2 +LTR 常用DSL

ES6.1.2 +LTR 常用DSL https://elasticsearch-learning-to-rank.readthedocs.io/ LTR插件中用的DSL是老的版本,新版本很多内容都改变了,新版本特征集构建部分应改为以下形式,在es6.1.2上测试成功。 function 返回某一列 GET tmdb/movie/_search { &amp;amp;quot;query&amp;amp;quot;: { &amp;amp;quot;functi...

1930

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

RTLCSS完全指南:从LTR到RTL的CSS转换终极解决方案

RTLCSS是一个将左到右(LTR)级联样式表(CSS)转换为右到左(RTL)的框架,为开发者提供了简单快速的CSS RTL转换解决方案,帮助网站轻松支持阿拉伯语、希伯来语等RTL语言布局。 ## 什么是RTLCSS? RTLCSS是一个功能强大的CSS转换工具,它能够自动分析LTR方向的CSS代码,智能识别需要翻转的属性和值,将其转换为适合RTL布局的样式。无论是简单的个人网站还是复杂的企业

gitblog_00041的博客 469

双向文本处理实战:RTLTMPro之LigatureFixer文本流反转与LTR片段保留算法

RTLTMPro 是一款为 Unity TextMeshPro 提供波斯语、阿拉伯语和希伯来语支持的开源插件。它的核心组件 `LigatureFixer` 解决了一个关键问题:**如何把从右到左(RTL)书写的文本流正确反转,同时保留其中的英文单词、数字和富文本标签的原始顺序(LTR 片段保留)**。本文将带你用通俗的方式读懂这套双向文本(Bidirectional Text)处理算法。 ##

gitblog_01125的博客 475
上一篇: LTRChain多模型查询
下一篇: 用ZK UI解决storm 读取Kafka时的Fetch offset *** is out of range for topic , resetting offset
风翔
博客等级 码龄19年 116粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风翔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值