网站建设51dlb/网上推广app怎么做

网站建设51dlb,网上推广app怎么做,网站建设案例行情,网站建设 微信营销Elasticsearch 介绍 当你开始使用 Elastic 时,你将使用 Elasticsearch Relevance Engine™(ESRE),它专为 AI 搜索应用程序提供支持。借助 ESRE,你可以利用一整套开发者工具,包括 Elastic 的文本搜索、向量…

Elasticsearch 介绍

当你开始使用 Elastic 时,你将使用 Elasticsearch Relevance Engine™(ESRE),它专为 AI 搜索应用程序提供支持。借助 ESRE,你可以利用一整套开发者工具,包括 Elastic 的文本搜索、向量数据库以及我们专有的用于语义搜索的 Transformer 模型。

Elastic 提供多种搜索技术,首先是 BM25,它是行业标准的文本搜索方法。BM25 可精准匹配特定搜索,找到精确的关键词,并且可以通过调优提升效果。

在开始向量搜索时,需要了解向量搜索有两种形式:“dense - 密集”(即 kNN 向量搜索)和 “sparse - 稀疏”。

Elastic 还提供开箱即用的 Learned Sparse Encoder 模型,用于语义搜索。该模型在多个数据集(如金融数据、天气记录、问答对等)上的表现优异。该模型无需额外的微调,即可在各个领域提供高相关性的搜索结果。

查看这个交互式演示,看看当 Elastic 的 Learned Sparse Encoder 模型与 Elastic 的 BM25 文字搜索算法对比时,搜索结果如何变得更加相关。

此外,Elastic 还支持密集向量,以实现对文本之外的非结构化数据(如视频、图像和音频)的相似性搜索。

语义搜索和向量搜索的优势在于,它们允许用户使用直观的语言进行搜索查询。例如,如果你想查找关于第二收入的职场指南,你可以搜索 “side hustle”(side hustle),即使这一术语在正式的 HR 文件中并不常见。

在本指南中,我们将演示如何创建 Elasticsearch,使用 Elastic 网页爬虫摄取数据,并通过简单几步实现语义搜索。

安装

Elasticsearch 及 Kibana

我们首先需要安装 Elasticsearch 及 Kibana。我们可以参考如下的文章来进行安装:

  • 如何在 Linux,MacOS 及 Windows 上进行安装 Elasticsearch

  • Kibana:如何在 Linux,MacOS 及 Windows 上安装 Elastic 栈中的 Kibana

当我们安装的时候,选择 Elastic Stack 8.x 的文章来进行安装。在本展示中,我们将使用 Elastic Stack 8.17.2 来进行展示。当我们首次运行 Elasticsearch 时,我们可以看到如下的界面:

请记下上面的 elastic 超级用户的密码,以备在下面进行使用。你还需要记下上面的 fingerprint 的值,以配置下面的 crawler。如果不记得上面的画面,那么你可以在 Kibana 的配置文件 config/kibana.yml 文件中找到。

启动白金试用

创建 API key

我们可以按照如下的步骤来创建一个 API key 供下面的步骤来进行使用:

我们可以拷贝上面的 API key 以供下面的配置进行使用:

安装 ELSER 模型

如果你还没有下载 ELSER 模型的话,请参考文章 “Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR” 来进行安装。安装完毕后,我们可以看到如下的画面:

如上所示,我们已经成功地安装了 .elser_model_2 模型。

创建 ELSER 端点

我们使用如下的命令来创建一个叫做 my-elser-model 的端点:

PUT _inference/sparse_embedding/my-elser-model
{"service": "elasticsearch","service_settings": {"adaptive_allocations": { "enabled": true,"min_number_of_allocations": 1,"max_number_of_allocations": 10},"num_threads": 1,"model_id": ".elser_model_2" }
}

这个端点在下面的配置中进行使用。

创建 Elasticsearch 索引

我们首先打开 Kibana,并创建一个叫做 elasticsearch-labs-blog 的索引:

上面表明我们已经成功地创建了一个叫做 elasticsearch-labs-blog 的索引。

我们可以通过 Kibana Dev Toosl 来进行检查:

接下来,添加一个 Semantic Text 类型的字段,我们给它取个非常有创意的名字:semantic_text

我们同样来通过 Dev Tools 来进行查看:

我们可以看到上面有一个已经生成的 semantic_text 的字段。

写入数据

配置 Elastic Open Web Crawler

你需要 Docker 来使用 Open Web Crawler

下面是一个简单的配置文件,它指示爬虫读取 Elasticsearch Labs 博客,并将数据写入 elasticsearch-labs-blog 索引,使用 elasticsearch.host 作为主机,并通过 elasticsearch.api_key 进行身份验证。

将以下内容复制到一个文件中,并将其命名为 crawler-config-blog.yml,然后根据需要更改 hostapi_key

$ cd demos/
$ ls
azure         deepseek      vector_search
$ mkdir -p crawler-elser/config
$ cd crawler-elser/config
$ vi crawler-config-blog.yml

crawler-config-blog.yml

domains:- url: https://www.elastic.coseed_urls:- https://www.elastic.co/search-labs/blogcrawl_rules:- policy: allowtype: beginspattern: /search-labs/blog- policy: denytype: regexpattern: .*output_sink: elasticsearch
output_index: elasticsearch-labs-blog elasticsearch:host: https://192.168.101.142port: 9200api_key: MjhVbXhwVUJDMkt6RFJJSTJ1RlM6eGFZZ2dpX3pTMTJZNXRJVnJCazljZw==ca_fingerprint: 1deb6039c6b542724612dd267f6f1bc53f40add6350ca865a9948cc977eee545bulk_api.max_items: 5pipeline_enabled: false

:你需要根据自己的配置修改上面的 api_key 及 elasticsearch.ca_fingerprint 值。我们可以参考链接来进行配置。你可以使用 ifconfig 来获取当前电脑上的私有 IP 地址。

现在创建一个 docker-compose.yml 文件。

docker-compose.yml

services:crawler:image: docker.elastic.co/integrations/crawler:latestvolumes:- ./config:/app/configstdin_open: truetty: true
$ pwd
/Users/liuxg/demos/crawler-elser
$ tree -L 2
.
├── config
│   └── crawler-config-blog.yml
└── docker-compose.yml

并使用以下命令启动服务:

docker-compose up -d

我们使用如下的命令来进行查看:

docker ps
$ docker ps
CONTAINER ID   IMAGE                                           COMMAND       CREATED              STATUS              PORTS     NAMES
a061113bb26f   docker.elastic.co/integrations/crawler:latest   "/bin/bash"   About a minute ago   Up About a minute             crawler-elser-crawler-1

现在你准备好开始爬取过程了:

docker-compose exec -it crawler bin/crawler crawl /app/config/crawler-config-blog.yml

几分钟后,你应该已经将整个 Elasticsearch labs 博客索引完成。

我们通过如下的命令来进行查看:

GET elasticsearch-labs-blog/_search

另外一种运行 crawler 的方式是通过阅读文章 “Elasticsearch:使用 Open Crawler 和 semantic text 进行语义搜索”。

发生了什么?

博客内容被索引到 body 字段,然后这些内容被转换为语义文本字段中的稀疏向量。这个转换包括两个主要步骤。首先,内容被划分成较小的、可管理的块,以确保文本被拆分成有意义的片段,这样可以更有效地处理和搜索。接下来,每个文本块使用文本扩展技术被转换成稀疏向量表示。这个步骤利用 ELSER(Elastic Search Engine for Relevance)将文本转换成捕捉语义含义的格式,从而实现更准确和相关的搜索结果。

通过将文本字段和 semantic_text 字段都索引到 Elasticsearch,这个过程结合了传统的关键词搜索和先进的语义搜索的优势。这个混合搜索提供了全面的搜索功能,确保用户可以基于原始文本和其潜在意义找到相关信息。

使用 Elasticsearch 来进行搜索

测试搜索查询 现在是时候搜索你想要的信息了。如果你是一个实现搜索的开发者(例如,为你的网页应用程序实现搜索),你应该使用 Console/Dev Tools 来测试和优化你索引数据的搜索结果。

我们从一个简单的 multi_match 查询开始,它将匹配 “title” 和 “body” 字段中的文本。由于这是一个经典的词汇搜索(还不是语义搜索),像 “how to implement multilingual search”这样的查询将匹配你提供的单词。

GET elasticsearch-labs-blog/_search
{"_source": ["title"],"query": {"multi_match": {"query": "how to implement multilingual search","fields": ["title","body"]}}
}
  "hits": {"total": {"value": 243,"relation": "eq"},"max_score": 10.187533,"hits": [{"_index": "elasticsearch-labs-blog","_id": "9d9385fd1d6e37586d1d05e08197a3e52d7e211d","_score": 10.187533,"_source": {"title": "How to implement image similarity search in Elasticsearch - Elasticsearch Labs"}},{"_index": "elasticsearch-labs-blog","_id": "9a81a1b071b31132ef425b81ac77682854397aa5","_score": 5.8747864,"_source": {"title": "Scalar quantization optimized for vector databases - Elasticsearch Labs"}},{"_index": "elasticsearch-labs-blog","_id": "8f2c911f8b9eb1301887e4a64d47e889d195d81d","_score": 5.803198,"_source": {"title": "Multilingual vector search with the E5 embedding model - Elasticsearch Labs"}},{"_index": "elasticsearch-labs-blog","_id": "787f3c1fe1192f92b6cd656c45afeb3b73dbcad0","_score": 5.469969,"_source": {"title": "Evaluating scalar quantization in Elasticsearch - Elasticsearch Labs"}},{"_index": "elasticsearch-labs-blog","_id": "cad40b1b9a5e3d410cc3193ab61c6303e6ff79c6","_score": 5.3935347,"_source": {"title": "Elasticsearch Open Inference API adds support for Jina AI Embeddings and Rerank Model - Elasticsearch Labs"}},{"_index": "elasticsearch-labs-blog","_id": "bba02bb478a478ebe0adddc748693307a64fd709","_score": 5.39243,"_source": {"title": "Building multilingual RAG with Elastic and Mistral - Elasticsearch Labs"}},

在这种情况下,前 5 个匹配结果还不错,但并不完美。

How to implement image similarity search in Elasticsearch - Elasticsearch Labs
Scalar quantization optimized for vector databases - Elasticsearch Labs
Multilingual vector search with the E5 embedding model - Elasticsearch Labs
Evaluating scalar quantization in Elasticsearch - Elasticsearch Labs
Elasticsearch Open Inference API adds support for Jina AI Embeddings and Rerank Model - Elasticsearch Labs

现在尝试使用语义查询,它会自动将文本 “how to implement multilingual search?” 转换为向量表示,并对 semantic_text 字段执行查询。

GET elasticsearch-labs-blog/_search
{"_source": ["title"],"query": {"semantic": {"field": "semantic_text","query": "how to implement multilingual search?"}}
}
 "hits": {"total": {"value": 243,"relation": "eq"},"max_score": 23.57368,"hits": [{"_index": "elasticsearch-labs-blog","_id": "8f2c911f8b9eb1301887e4a64d47e889d195d81d","_score": 23.57368,"_source": {"title": "Multilingual vector search with the E5 embedding model - Elasticsearch Labs"}},{"_index": "elasticsearch-labs-blog","_id": "bba02bb478a478ebe0adddc748693307a64fd709","_score": 22.532505,"_source": {"title": "Building multilingual RAG with Elastic and Mistral - Elasticsearch Labs"}},{"_index": "elasticsearch-labs-blog","_id": "9621418190a5fe3a472fbaa228676560d034566e","_score": 22.302826,"_ignored": ["meta_description.keyword"],"_source": {"title": "How to search languages with compound words - Elasticsearch Labs"}},{"_index": "elasticsearch-labs-blog","_id": "7a1464445379516bf694c5677b2835c96a1c13a6","_score": 21.983751,"_source": {"title": "Dataset translation with LangChain, Python & Vector Database for multilingual insights - Elasticsearch Labs"}},{"_index": "elasticsearch-labs-blog","_id": "626be320dfa0b30e915b59ce7355002692c54599","_score": 20.928116,"_source": {"title": "Agentic RAG with Elasticsearch & Langchain - Elasticsearch Labs"}},{"_index": "elasticsearch-labs-blog","_id": "9a81a1b071b31132ef425b81ac77682854397aa5","_score": 20.376408,"_source": {"title": "Scalar quantization optimized for vector databases - Elasticsearch Labs"}},

你从这个语义搜索中得到的前五个结果看起来好多了。

Multilingual vector search with the E5 embedding model - Elasticsearch Labs
Building multilingual RAG with Elastic and Mistral - Elasticsearch Labs
How to search languages with compound words - Elasticsearch Labs
Dataset translation with LangChain, Python & Vector Database for multilingual insights - Elasticsearch Labs
gentic RAG with Elasticsearch & Langchain - Elasticsearch Labs

为什么不同时使用两者呢?创建一个混合搜索查询

使用倒排排名融合(RRF)是混合检索系统中的一种技术,用于提高搜索结果的相关性。它将不同的检索方法(如词汇(传统)搜索和语义搜索)结合起来,以增强整体搜索性能。

通过利用 RRF,查询确保最终的文档列表是来自两种检索方法的最佳结果的平衡组合,从而提高搜索结果的整体相关性和多样性。这种融合技术弥补了单一检索方法的局限性,提供了更全面、更准确的结果集。

GET elasticsearch-labs-blog/_search
{"_source": ["title"],"retriever": {"rrf": {"retrievers": [{"standard": {"query": {"multi_match": {"fields": ["title","body"],"query": "how to implement multilingual search"}}}},{"standard": {"query": {"semantic": {"field": "semantic_text","query": "how to implement multilingual search"}}}}]}}
}
  "hits": {"total": {"value": 243,"relation": "eq"},"max_score": 0.03226646,"hits": [{"_index": "elasticsearch-labs-blog","_id": "8f2c911f8b9eb1301887e4a64d47e889d195d81d","_score": 0.03226646,"_source": {"title": "Multilingual vector search with the E5 embedding model - Elasticsearch Labs"}},{"_index": "elasticsearch-labs-blog","_id": "9a81a1b071b31132ef425b81ac77682854397aa5","_score": 0.031513646,"_source": {"title": "Scalar quantization optimized for vector databases - Elasticsearch Labs"}},{"_index": "elasticsearch-labs-blog","_id": "bba02bb478a478ebe0adddc748693307a64fd709","_score": 0.031280547,"_source": {"title": "Building multilingual RAG with Elastic and Mistral - Elasticsearch Labs"}},{"_index": "elasticsearch-labs-blog","_id": "9621418190a5fe3a472fbaa228676560d034566e","_score": 0.03079839,"_ignored": ["meta_description.keyword"],"_source": {"title": "How to search languages with compound words - Elasticsearch Labs"}},{"_index": "elasticsearch-labs-blog","_id": "787f3c1fe1192f92b6cd656c45afeb3b73dbcad0","_score": 0.030330881,"_source": {"title": "Evaluating scalar quantization in Elasticsearch - Elasticsearch Labs"}},{"_index": "elasticsearch-labs-blog","_id": "cad40b1b9a5e3d410cc3193ab61c6303e6ff79c6","_score": 0.029877368,"_source": {"title": "Elasticsearch Open Inference API adds support for Jina AI Embeddings and Rerank Model - Elasticsearch Labs"}},{"_index": "elasticsearch-labs-blog","_id": "9d9385fd1d6e37586d1d05e08197a3e52d7e211d","_score": 0.016393442,"_source": {"title": "How to implement image similarity search in Elasticsearch - Elasticsearch Labs"}},

混合搜索的前5个结果包含了非常好的结果,所有结果都与如何使用 Elasticsearch 实现多语言搜索高度相关:

Multilingual vector search with the E5 embedding model - Elasticsearch Labs
Scalar quantization optimized for vector databases - Elasticsearch Labs
Building multilingual RAG with Elastic and Mistral - Elasticsearch Labs
How to search languages with compound words - Elasticsearch Labs
Evaluating scalar quantization in Elasticsearch - Elasticsearch Labs

下一步

感谢你花时间自建 Elasticsearch 并为你的数据设置语义搜索。在你开始使用 Elastic 的旅程时,了解一些你在跨环境部署时作为用户应该管理的操作、安保和数据组件。

准备好开始了吗?在 Elastic Cloud 上启动免费的 14 天试用,或尝试这 15 分钟的动手学习,了解搜索 AI 101。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/73309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙生态开发

鸿蒙生态开发概述 鸿蒙生态是华为基于开源鸿蒙(OpenHarmony)构建的分布式操作系统生态,旨在通过开放共享的模式连接智能终端设备、操作系统和应用服务,覆盖消费电子、工业物联网、智能家居等多个领域。以下从定义与架构、核心技术…

vue-next-admin修改配置指南

官方文档地址:vue-next-admin 1.如何开启侧边栏logo 在scr-layout-navbars-topBar-setings.vue中添加 getThemeConfig.value.isShowLogo true; 设置为true即可默认打开 2.修改侧边栏顶部的logo与文字 先把想要的图标存到我的项目然后下载 然后把后面的几个文件拉…

gin学习

gin学习笔记,不仅包含了基本的增删查改外,还包括参数传递,上传下载,模版、session与中间件等,方便收藏自习可用 文章目录 获得个请求get打印字符串get请求xmlget请求跳转http方法路由可以通过Context的Param方法来获取…

Flutter运行错误:UG! exception in phase ‘semantic analysis‘

最近在Mac Mini M4上通过Android Studio导入Flutter项目并运行,结果一直跑不起来,错误日志如下: 执行命令查看版本信息: flutter doctor --verbose通过输出信息Java version OpenJDK Runtime Environment (build 21.0.41242208…

开源视觉语言模型MiniMax-VL-01:动态分辨率+4M超长文本,性能比肩GPT-4o

在人工智能领域,构建能够像人类一样理解、思考和行动的智能体(AI Agent)一直是研究人员的终极目标之一。而实现这一目标的关键在于模型是否具备足够强大的感知能力、记忆能力和推理能力。近期,国内人工智能公司MiniMax重磅开源了其…

excel 列单元格合并(合并列相同行)

代码 首先自定义注解CellMerge,用于标记哪些属性需要合并,哪个是主键**(这里做了一个优化,可以标记多个主键)** import org.dromara.common.excel.core.CellMergeStrategy;import java.lang.annotation.*;/*** excel…

flowable适配达梦7 (2.1)

经过第一版的问题解决,后端项目可以启动,前端页面也集成进去。 前端在流程设计页面报错 之后发现主要是组件中modelerStore这个值没有 解决方法:在data增加对象 给component/process/designer.vue 中涉及到的每个子组件传入 :modelerStore“modeler…

2025年移动端开发性能优化实践与趋势分析

启动速度优化 本质:缩短首次可见帧渲染时间。 方法: iOS:利用Core ML本地模型轻量化部署,减少云端等待。Android:强制启用SplashScreen API,通过setKeepOnScreenCondition控制动画时长。冷启动需将耗时操…

【MySQL篇】DEPENDENT SUBQUERY(依赖性子查询)优化:从百秒到秒级响应的四种优化办法

💫《博主介绍》:✨又是一天没白过,我是奈斯,从事IT领域✨ 💫《擅长领域》:✌️擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控;并对SQLserver、NoSQL(…

红宝书第十三讲:详解JavaScript核心对象:Array、Object、Date、RegExp

红宝书第十三讲:详解JavaScript核心对象:Array、Object、Date、RegExp 资料取自《JavaScript高级程序设计(第5版)》。 查看总目录:红宝书学习大纲 一、Object:万物皆对象的“盒子” Object是JavaScript中…

昆仑技术重构AI大模型落地范式,长期作“加法”迎来国产生态化“拐点”

作者 | 曾响铃 文 | 响铃说 DeepSeek的爆火,在业内迅速掀起了一场国产化的变革。“国产大模型国产算力”软硬协同的范式正在被重构,AI产业国产化的含金量持续提升,越来越多的企业在这一趋势下加速走上数智化转型路径。 其中,以…

原开源鸿蒙仓库停止更新

2月24日,gitee 上的开源鸿蒙组织,所有代码停止更新,查看代码仓显示已关闭,不少小伙伴以为停止更新了,发生了什么? 原因很简单,所有代码仓迁移至 Gitcode,至于为什么改用 Gitcode&…

SpringBoot大学生竞赛管理系统设计与实现

一个用于管理大学生竞赛报名、信息查询与竞赛管理的系统,采用了现代化的SpringBoot框架进行开发。该系统的主要功能包括学生信息管理、教师信息管理、竞赛报名审核、竞赛信息管理等模块,适用于学校或教育机构进行竞赛活动的组织与管理。系统界面简洁&…

MinIO搭建部署

1、命令行安装 访问monio官网下载应用程序 # wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20250228095516.0.0-1.x86_64.rpm -O minio.rpm # sudo dnf install minio.rpm # mkdir ~/minio # minio server ~/minio --console-address :90012、dock…

Linux修改SSH端口号

我这里那RedHat系列的操作系统举例,修改SSH端口号 修改SSH配置文件:/etc/ssh/sshd_config,将端口号修改为2222.vim /etc/ssh/sshd_config重启SSH服务systemctl restart sshd# 如果是比较旧的OS,使用下面的命令重启 service ssh restart验证端口更改是否成功netstat -tulnp …

【嵌入式Linux】基于ArmLinux的智能垃圾分类系统项目

目录 1. 功能需求2. Python基础2.1 特点2.2 Python基础知识2.3 dict嵌套简单说明 3. C语言调用Python3.1 搭建编译环境3.2 直接调用python语句3.3 调用无参python函数3.4 调用有参python函数 4. 阿里云垃圾识别方案4.1 接入阿里云4.2 C语言调用阿里云Python接口 5. 香橙派使用摄…

字节跳动实习生主导开发强化学习算法,助力大语言模型性能突破

目录 禹棋赢的背景与成就 主要成就 DAPO算法的技术细节 算法优势 禹棋赢的研究历程 关键时间节点 字节跳动的“Top Seed人才计划” 计划特点 小编总结 在大模型时代,经验不再是唯一的衡量标准,好奇心、执行力和对新技术的敏锐洞察力成为推动技术…

Rust + 时序数据库 TDengine:打造高性能时序数据处理利器

引言:为什么选择 TDengine 与 Rust? TDengine 是一款专为物联网、车联网、工业互联网等时序数据场景优化设计的开源时序数据库,支持高并发写入、高效查询及流式计算,通过“一个数据采集点一张表”与“超级表”的概念显著提升性能…

使用LangChain实现基于LLM和RAG的PDF问答系统

目录 前言一.大语言模型(LLM)1. 什么是LLM?2. LLM 的能力与特点 二、增强检索生成(RAG)三. 什么是 LangChain?1. LangChain 的核心功能2. LangChain 的优势3. LangChain 的应用场景4. 总结 四.使用 LangChain 实现基于 PDF 的问答系统 前言 本文将介绍 …

群核科技持续亏损近18亿:营销费用偏高,市场份额优势面临挑战

《港湾商业观察》施子夫 2025年开年,DeepSeek的爆火让大众将目光聚焦到了“杭州六小龙”。其中,杭州群核信息技术有限公司(以下简称,群核科技)因系“六小龙”中首家启动上市的公司而被外界更多关注。 在此次递表港交…