elasticsearch 相似文档推荐

[推荐系统]elasticsearch与推荐系统 elasticsearch是一种分布式的搜索引擎,提供强大的检索与分析工具,es7.3后新增了向量检索功能,可以用于推荐系统计算相似度 阅读详情

参考:https://www.elastic.co/guide/en/elasticsearch/reference/7.5/query-dsl-mlt-query.html

对应的代码为:

{
    "query": {
        "more_like_this" : {
            "fields" : ["name.first", "name.last"],
            "like" : [
            {
                "_index" : "marvel",
                "doc" : {
                    "name": {
                        "first": "Ben",
                        "last": "Grimm"
                    },
                    "_doc": "You got no idea what I'd... what I'd give to be invisible."
                  }
            },
            {
                "_index" : "marvel",
                "_id" : "2"
            },
            "你好,我是第一次使用这个"
            ],
            "min_term_freq" : 1,
            "min_doc_freq" : 1,
            "max_query_terms" : 12,
            "minimum_should_match":1,
        }
    }
}

说明:从以上可以看出,总共可以支持三种以及他们之间组合使用

第一种:是根据文档_id来查找和其相似文档

第二种:自定义文档,来查找和其相似文档

第三种:字符串,来查找这个字符串和文档中"name.first", "name.last"这两个属性最相似的文档

参数说明, More like this query | Elasticsearch Guide [7.10] | Elastic

此外,其还可以和时间衰减相结合使用:

{
    "query": {
        "function_score": {
            "query": {
                "more_like_this": {
                    "fields": [
                        "content"
                    ],
                    "like": [
                        {
                            "_index": "marvel",
                            "doc": {
                                "name": {
                                    "first": "Ben",
                                    "last": "Grimm"
                                },
                                "_doc": "You got no idea what I'd... what I'd give to be invisible."
                            }
                        },
                        {
                            "_index": "marvel",
                            "_id": "2"
                        },
                        "你好,我是第一次使用这个"
                    ],
                    "min_term_freq": 0,
                    "min_doc_freq": 0,
                    "max_query_terms": 120
                }
            },
            "functions": [
                {
                    "gauss": {
                        "publish_time": {
                            "origin": "now",
                            "offset": "2d",
                            "scale": "7d",
                            "decay": 0.5
                        }
                    }
                }
            ]
        }
    }
}

使用Postgres向量数据库(PGVecto.rs)实现文档相似度搜索 PGVecto.rs是一个扩展Postgres功能的向量数据库,它允许开发者直接在Postgres中存储和查询向量。通过与向量嵌入技术结合,PGVecto.rs可以支持高效的相似度搜索。这对需要处理大量文本数据的应用场景尤为重要,如搜索引擎、推荐系统和信息检索等。 阅读详情

相关推荐

ElasticSearch 搜索原理之倒排索引

倒排索引作用 试想一下这个情景,你也记不清什么时候读过这个一段话:“老刘,老刘,食量大似牛,吃一个老母猪不抬头.”,只记得是红楼梦里面的台词,上学的时候语文老师还解读过,现在觉得特别有意思,想看看完整的这个故事。 于是你买了一本《红楼梦》,打开目录,定位不同章节的位置,然后按照顺序一章一章的遍历,找找哪一章里面有这么一句话。终于经过你不懈的努力终于找到这句话来自于“刘姥姥进大观园”哪一章。 这个检...

u014296502的专栏 440

elasticsearch算法之推荐系统的相似度算法(一)

一、推荐系统简介 推荐系统主要基于对用户历史的行为数据分析处理,寻找得到用户可能感兴趣的内容,从而实现主动向用户推荐其可能感兴趣的内容; 从物品的长尾理论来看,推荐系统通过发掘用户的行为,找到用户的个性化需求,从而将长尾商品准确地推荐给需要它的用户,帮助用户发现那些他们感兴趣但很难发现的商品。 推荐系统使用的是基于邻域的算法,一类是基于用户的协同过滤算法,另一类是基于物品的协同过滤算法; 二、数据集准备 我们采用GroupLens提供的MovieLens数据集 These files contain 1,0

无风听海 2338

Minitab实战:用Weibull分布预测产品寿命的5个关键参数(附真实案例)

本文通过一个真实的电容器老化测试案例,详细介绍了如何运用Minitab软件进行Weibull分布分析,以预测产品寿命。文章深入解读了形状参数β、尺度参数η等五个关键参数的工程意义与商业价值,指导工程师从失效数据中提取洞察,并将其应用于可靠性评估、保修策略制定及成本预估等实际业务决策。

weixin_29231263的博客 520

Elasticsearch 如何实现相似推荐功能?

1、什么是相似推荐?拿我们身边的算法“投喂”为主的头条、抖音、微信视频号等举例,如果你喜欢乒乓球,每天推送给你的都是乒乓球比赛视频集锦;如果你喜欢成功人士演讲,每天都是马云、马化腾、刘强东...

铭毅天下Elasticsearch 7810

如何解决ipa包上传App Store Connect时出现的无效二进制文件问题

本文详细解析了ipa包上传App Store Connect时出现无效二进制文件问题的常见原因及解决方案。从Scheme配置、架构支持到权限声明,提供了全面的检查步骤和实用技巧,帮助开发者快速定位并解决上传问题,确保应用顺利通过审核。

weixin_28833069的博客 315

聚类技术:发展历史、主要分类与重要论文解析

在数据挖掘和机器学习的广袤领域中,聚类作为一种强大的无监督学习技术,一直扮演着至关重要的角色。它能够帮助我们从海量的数据中发现隐藏的模式和结构,将相似的数据对象归为一类,从而为进一步的分析和决策提供有价值的信息。

qq_48131648的博客 2630

Elasticsearch:运用 Elasticsearch 查找类似文档:more_like_this

More Like This Query 查找与给定文档集 “相似” 的文档。 为此,More Like This选择这些输入文档的一组代表性术语,使用这些术语形成查询,执行查询并返回结果。 用户控制输入文档、应如何选择术语以及如何形成查询。 最简单的用例包括请求与提供的文本片段相似的文档。 在这里,我们要求所有在 “title” 和 “description” 字段中包含类似于 “Once upon a time” 的文本的所有电影,将所选术语的数量限制为 12。 GET /_search { .

Elastic 中国社区官方博客 5727

数学建模算法案例精讲500篇-【深度强化学习】深度确定性策略梯度(DDPG)(附MATLAB和python代码实现)

它是一种学习连续动作的无模型策略算法。它结合了DPG(确定性策略梯度)和DQN(深度Q网络)的思想。它利用DQN中的经验重放和延迟更新的目标网络,并基于DPG,可以在连续的动作空间上运行。# 用于生成带有噪声的动作def __init__(self, action_space, mu=0.0, theta = 0.15, max_sigma = 0.3, min_sigma = 0.3, decay_period = 100000):#decay_period要根据迭代次数合理设置# 均值 mu。

qq_36130719的博客 324

分布式搜索elasticsearch java API 之(八)------使用More like this实现基于内容的推荐

基于内容的推荐通常是给定一篇文档信息,然后给用户推荐与该文档相识的文档。Lucene的api中有实现查询文章相似度的接口,叫MoreLikeThis。Elasticsearch封装了该接口,通过Elasticsearch的More like this查询接口,我们可以非常方便的实现基于内容的推荐。 先看一个查询请求的json例子: { "more_like_this" : {

云端分布式搜索技术 1万+

论文复现《基于最大李雅普诺夫指数的电力系统暂态电压稳定评估方案》

电力系统暂态电压稳定评估方案 摘要 本研究提出了一种基于最大李雅普诺夫指数的电力系统暂态电压稳定评估方法。通过分析相空间中相邻轨迹的收敛或发散特性,该方法能够提前判别系统稳定性。论文首先阐述了暂态电压稳定机理,详细介绍了最大李雅普诺夫指数的计算方法。针对IEEE-39节点系统,建立了仿真模型并获取不同故障场景下的数据。研究开发了完整的评估程序,包括数据预处理、相空间重构、指数计算等模块,并通过与时域仿真结果的对比验证了方法的准确性。实验结果表明,该方法能够快速有效地评估电力系统的暂态电压稳定性,为系统安全运

max500600的博客 186

修改Windows hosts文件的解决方案

本文主要介绍了修改Windows hosts文件解决方案,希望能对新手有所帮助。 文章目录 1. 问题描述 2. 解决方案 2.1 安装软件 2.2 修改hosts文件

weixin_43178406的博客 1万+

elasticsearch算法之词项相似度算法(二)

六、莱文斯坦编辑距离 前边的几种距离计算方法都是针对相同长度的词项,莱文斯坦编辑距离可以计算两个长度不同的单词之间的距离;莱文斯坦编辑距离是通过添加、删除、或者将一个字符替换为另外一个字符所需的最小编辑次数; 我们假设两个单词u、v的长度分别为i、j,则其可以分以下几种情况进行计算 当有一个单词的长度为0的时候,则编辑距离为不为零的单词的长度; ldu,v(i,j)=max(i,j)                min(i,j)=0 ld_{u,v}(i,j)=max(i,j)\; \; \; \; \;

无风听海 2297

XXL-Job 分布式定时任务

XXL-JOB是一款轻量级分布式定时任务调度框架,采用调度中心与执行器分离架构,解决单机任务宕机、重复执行等问题。核心模块包括调度中心(管理任务配置、触发调度)和执行器(执行任务逻辑),支持集群部署保证高可用。框架提供丰富的任务触发规则、路由策略、阻塞策略及完善的运维能力,适用于多种业务场景如数据同步、定时推送等。安装时需准备MySQL数据库并初始化表结构,通过Docker部署调度中心服务。相比其他定时框架,XXL-JOB具有轻量化、可视化等优势,是中小企业的首选方案。

郭宝的博客 695

gensim-simserver 使用教程

gensim-simserver 使用教程 项目介绍 gensim-simserver 是一个基于 gensim 库的相似性搜索服务器。gensim 是一个用于从文档中自动提取语义主题的 Python 库,而 gensim-simserver 则提供了一个方便的接口,使得用户可以通过网络请求来进行相似性搜索。 项目快速启动 安装 首先,确保你已经安装了 Python 和 pip。然后,通过以下命令...

gitblog_00462的博客 433

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

python中文社区-python

基于ES的aliyun-knn插件,开发的以图搜图搜索引擎本例是基于Elasticsearch6.7 版本, 安装了aliyun-knn插件;设计的图片向量特征为512维度.如果自建ES,是无法使用aliyun-knn插件的,自建建议使用ES7.x版本,并按照fast-elasticsearch-vector-scoring插件(https://github.com/lior-k/fast-ela...

weixin_37988176的博客 493

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

EmbeddingGemma-300m与Elasticsearch集成:构建新一代语义搜索引擎

走完这一整套流程,你应该已经掌握了如何用EmbeddingGemma和Elasticsearch搭建一个语义搜索引擎。从环境准备、数据准备,到向量生成、索引创建,再到搜索实现和Web界面,每个环节我都尽量用最直白的方式讲解。实际用下来,这套方案有几个明显的优点。首先是效果好,语义搜索确实比传统的关键词搜索更智能,能理解用户的真实意图。其次是部署简单,Ollama让模型部署变得特别容易,Elasticsearch也有成熟的生态。还有就是扩展性强,你可以很容易地把它应用到不同的场景中。

weixin_35752233的博客 103

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【亲测免费】 推荐:精准高效的中文文档相似度检测利器 - Simhash 库

推荐:精准高效的中文文档相似度检测利器 - Simhash 库 项目介绍 Simhash 是一个强大的文本去重算法,由谷歌研发并广泛应用于文本处理领域。为了更好地服务于中文文档的相似度计算,@yanyiwu 开发了一款专为中文文档设计的 Simhash 算法库。这个开源项目不仅提供核心的 Simhash 计算功能,还包含了基于 CppJieba 的分词与关键词提取功能,以及一个易于使用的 HTTP...

gitblog_00032的博客 1027

数据挖掘_推荐系统

【1】推荐系统和搜索引擎很类似。都用到了相似性算法。 【2】主要原理是:1.基于内容的推荐  2.基于用户的推荐  3.?? 【3】映射?用户*物品 来打分吗?

m0_38034312的博客 545

Jina Embeddings v2 Base ES实战应用:10个文本相似度计算案例

Jina Embeddings v2 Base ES是一款支持8192序列长度的西班牙语/英语双语文本嵌入模型,能够将文本转换为高维向量,通过计算向量间的余弦相似度来衡量文本间的相似程度,广泛应用于自然语言处理领域的各种场景。 ## 一、模型简介与安装 ### 1.1 模型特点 Jina Embeddings v2 Base ES作为西班牙语-英语双语嵌入模型,采用mean pooling方

gitblog_00595的博客 344

探索文本嵌入:Elasticsearch中的相似性搜索

探索文本嵌入:Elasticsearch中的相似性搜索 项目介绍 在信息爆炸的时代,如何从海量数据中快速找到相关信息成为了一个重要课题。Elasticsearch作为一款强大的搜索引擎,结合文本嵌入技术,能够实现高效的相似性搜索。本项目提供了一个简单的示例,展示了如何通过将句子嵌入模型与Elasticsearch的dense_vector字段类型结合,实现文本的相似性搜索。 项目的主要脚本src/...

gitblog_00004的博客 369

从搜索引擎到推荐系统:手把手用TF-IDF和Python实现简易文本相似度匹配与文档检索

本文详细介绍了如何使用Python和TF-IDF算法实现文本相似度匹配与文档检索系统。从数据预处理到向量化特征提取,再到相似度计算与系统优化,手把手教你构建可落地的检索系统。文章还探讨了TF-IDF的高级应用,如文档去重和混合推荐系统,并介绍了改进算法TF-IWF的实践技巧。

weixin_30388285的博客 288

elasticsearch使用more_like_this实现基于内容的推荐

min_doc_freq:一个词语最少在多少篇文档中出现,小于这个值的词会将被忽略,默认是无限制。max_doc_freq:一个词语最多在多少篇文档中出现,大于这个值的词会将被忽略,默认是无限制。min_term_freq:一篇文档中一个词语至少出现次数,小于这个值的词将被忽略,默认是2。percent_terms_to_match:匹配项(term)的百分比,默认是0.3。max_query_terms:一条查询语句中允许最多查询词语的个数,默认是25。boost_terms:设置词语权重,默认是1。

qiuweifan的博客 1018

推荐项目:Fast Elasticsearch Vector Scoring - 高性能向量评分插件

推荐项目:Fast Elasticsearch Vector Scoring - 高性能向量评分插件 在大数据检索的背景下,将基于深度学习的向量相似度搜索集成到搜索引擎中变得日益重要。今天,我们来深入探讨一个开源项目——Fast Elasticsearch Vector Scoring,这是一个旨在加速基于向量的文档评分的Elasticsearch插件,尤其对于那些需要高效执行近邻搜索的应用场景来...

gitblog_00297的博客 480

探索Elasticsearch的向量评分插件:提升搜索与推荐系统的性能

探索Elasticsearch的向量评分插件:提升搜索与推荐系统的性能 在当今的数据驱动世界中,高效的搜索和推荐系统是业务成功的关键。Elasticsearch,作为领先的搜索引擎,一直在不断进化以满足这些需求。今天,我们将介绍一个强大的工具——Elasticsearch的向量评分插件,它能够显著提升基于向量的搜索和推荐系统的性能。 项目介绍 Vector Scoring Plugin for E...

gitblog_00790的博客 655

基于 Elasticsearch 8.12.0 集群相似度查询

在 Elasticsearch(简称 ES)中,More Like This(MLT)查询是一种非常有用的功能。它主要用于根据一个文档(或一组文档)的内容,找到与之相似的其他文档。这种查询方式非常适合于推荐系统、相似内容发现等场景。例如,你有一个电商网站,用户正在查看一款特定的电子产品。通过 More Like This 查询,你可以基于该产品的产品描述、用户评论等字段,找到其他与之相似的产品推荐给用户,从而提高用户体验和购买转化率。

Jason 572
上一篇: 非对称加密的数学原理
下一篇: pandas读取mysql数据
会发paper的学渣
博客等级 码龄15年 171粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

会发paper的学渣

您的鼓励和将是我前进的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值