当前位置: 首页 > news >正文

便民网站开发服务器维护中

便民网站开发,服务器维护中,建设安全施工网络平台,淘宝客没网站怎么做目录 一、前言 二、Elasticsearch9 语义检索介绍 2.1 ES9 语义检索核心特性 2.2 semantic_text 字段类型说明 2.3 ES9 语义检索原理 2.4 ES9 语义检索优势与使用场景 三、 Elasticsearch9 搭建过程 3.1 环境说明 3.2 部署方式一 3.2.1 创建docker网络 3.2.2 获取es9镜…目录 一、前言 二、Elasticsearch9 语义检索介绍 2.1 ES9 语义检索核心特性 2.2 semantic_text 字段类型说明 2.3 ES9 语义检索原理 2.4 ES9 语义检索优势与使用场景 三、 Elasticsearch9 搭建过程 3.1 环境说明 3.2 部署方式一 3.2.1 创建docker网络 3.2.2 获取es9镜像 3.2.3 启动 es容器 3.2.4 启动kibana容器 3.2.5 创建es访问账户和密码 3.2.6 为kibana创建访问es 的token令牌 3.2.6 生成访问kibana的验证码 3.2.7 访问kibana 3.3 部署方式二 3.3.1 初次启动es容器 3.3.2 拷贝容器内部的文件 3.3.3 文件授权 3.3.4 移除镜像 3.3.5 重启es容器 3.3.6 修改es配置参数 3.3.7 启动kibana容器 3.3.8 拷贝容器内的文件 3.3.9 文件目录授权 3.3.10 创建kibana账户 3.3.11 修改容器外挂载目录中的kibana.yml 3.3.12 重启kibana容器 四、ES9 英文语义检索操作过程 4.1 英文语义检索操作案例 4.1.1 创建索引 4.1.2 索引添加数据 4.1.3 执行语义搜索 五、ES9 中文语义检索操作过程 5.1 配置向量模型 5.1.1  获取向量模型和apikey 5.1.2 注册推理API访问入口 5.2 创建索引并增加数据 5.2.1 添加索引 5.2.2 增加几条数据 5.3 语义检索效果模拟 六、写在文末 一、前言 语义检索是指能够理解查询意图和文档含义的搜索技术而不仅仅是关键词匹配。它通过自然语言处理NLP和机器学习技术理解查询和文档的语义上下文。ES9Elasticsearch 9是 Elasticsearch 搜索引擎的一个重要版本它在语义检索Semantic Search方面引入了多项重要改进使搜索更加智能化和语义化。本文将详细介绍 Elasticsearch 9 的语义检索特性、工作原理并通过实际测试示例展示如何使用这些新功能。  二、Elasticsearch9 语义检索介绍 Elasticsearch 9.0 在语义搜索领域带来了重大升级通过原生支持 semantic_text 字段类型、改进的查询方式以及与向量搜索的深度整合为用户提供了更强大、更灵活的语义检索能力。 2.1 ES9 语义检索核心特性 ES9 语义检索具有如下核心特性 原生向量搜索支持 内置向量数据库功能无需额外插件 支持高效的近似最近邻ANN搜索 与传统的倒排索引无缝集成 改进文本嵌入集成 简化了嵌入模型如BERT、GPT等的集成流程 支持实时嵌入计算和索引 提供预训练模型的管理功能 混合检索模式 结合关键词搜索BM25和向量搜索的优势 可配置的混合评分机制 支持结果重排序reranking 增强NLP处理 内置更先进的文本分词和分析器 改进的同义词和语义扩展功能 更好的多语言支持 查询方式扩展 原生 semantic 查询专为语义搜索设计的简洁查询语法 match 查询支持现在 match 查询也可用于 semantic_text 字段提供更熟悉的查询体验 knn 查询支持可直接对 semantic_text 字段执行近似最近邻搜索 sparse_vector 查询支持稀疏向量搜索技术 2.2 semantic_text 字段类型说明 ES 9 引入了 semantic_text 字段类型这是一种专为语义搜索设计的字段类型能够自动处理文本的向量化表示。与传统的 text 字段不同semantic_text 字段在索引时会自动通过配置的推理模型将文本转换为向量表示而无需用户手动处理向量转换过程。其关键优势如下 开箱即用 只需配置推理端点无需手动管理向量转换过程 透明处理 自动处理文本扩展和向量化对用户完全透明 混合搜索 可与传统关键词搜索(BM25)结合使用提升搜索结果相关性 2.3 ES9 语义检索原理 ES9 语义搜索基于文本扩展(text expansion)技术其核心工作流程如下 数据存储向量化将写入索引的数据进行向量化存储 查询扩展将用户查询输入通过推理模型扩展为包含相关术语的扩展查询 向量转换将扩展后的查询转换为向量表示(密集或稀疏向量) 相似度计算计算查询向量与文档向量的相似度 结果排序根据相似度得分对结果进行排序 与传统基于关键词搜索相比语义搜索能够理解查询的意图和上下文而不仅是匹配字面词汇。例如搜索自新媒体运营可以匹配到包含与新媒体语义相近的的文档即使文档中没有出现新媒体这个词。 2.4 ES9 语义检索优势与使用场景 语义检索在实际应用中是独具优势的具体来说 更精准的搜索结果理解用户查询的真实意图 自然语言查询支持问答式搜索和复杂查询 推荐系统基于内容相似性的推荐 跨语言搜索不同语言间的语义匹配 ES9的语义检索功能特别适用于需要理解内容语义的场景如知识库搜索、电子商务产品搜索、内容推荐系统等。结合大模型可以让语义检索发挥更强的作用。 三、 Elasticsearch9 搭建过程 为了后面使用和验证Elasticsearch9的语义检索特性需要搭建Es9接下来介绍2种基于docker安装Elasticsearch9的方式。 3.1 环境说明 请提前准备下面的环境 云服务器或虚拟机至少2C4Gdocker环境版本不要太低 3.2 部署方式一 3.2.1 创建docker网络 使用下面的命令创建一个docker 网络 docker network create elastic 3.2.2 获取es9镜像 使用下面的命令拉取es9镜像 docker pull elasticsearch:9.0.1 3.2.3 启动 es容器 使用下面的命令启动一个es容器 注意如果你的服务器内存不足建议启动容器的时候在参数中限制一下容器占用的内存大小 docker run -d \ --name es9 \ --network elastic \ -p 9200:9200 \ -p 9300:9300 \ --privileged \ -e discovery.typesingle-node \ -e ES_JAVA_OPTS-Xms512m -Xmx512m \ elasticsearch:9.0.1 容器启动成功后使用docker ps 命令检查一下 3.2.4 启动kibana容器 为了后续操作es索引数据方便这里使用es的可视化操作工具kibana下面使用下面的命令启动kibana容器 docker run -d \ --name kibana_09 \ --network elastic \ -p 5601:5601 \ --privileged \ kibana:9.0.1 使用docker ps命令检查是否启动成功 3.2.5 创建es访问账户和密码 为了确保es的数据安全默认情况下es开启了数据安全访问测试在yml配置文件中可以看到 使用下面的命令创建一个账户和密码输入命令之后在最后会随机生成一个密码注意妥善保管 docker exec -it es9 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic 3.2.6 为kibana创建访问es 的token令牌 还记得在使用kibana操作es的时候在kibana中需要设置连接es的IP端口等信息在这里需要为kibana设置一个访问的token令牌参考下面的命令 docker exec -it es9 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana 执行之后稍等一会就会生成一长串token字符串后续在kibana访问的时候会用到请注意妥善保管 3.2.6 生成访问kibana的验证码 这么做的目的还是为了访问数据的安全考虑执行下面的命令生成验证码 docker exec kibana_09 /usr/share/kibana/bin/kibana-verification-code 3.2.7 访问kibana 输入 IP:5601 访问kibana控制台 将前面生成的token粘贴到输入框跳转到下面的界面后再将生成的验证码输入进去 验证成功后跳转到下面的页面进行初始化相关的设置 初始化完成后跳转到下面的登录界面输入前面设置的账户和密码进行登录 登录成功后就来到下面熟悉的界面了 点击左侧的Dev Tools菜单就到了熟悉的界面在这个界面就可以操作ES相关的命令了 3.3 部署方式二 下面介绍第二种部署方式 3.3.1 初次启动es容器 使用下面的命令启动容器 docker run -d \ --name es9 \ --network elastic \ -p 9200:9200 \ -p 9300:9300 \ --privileged \ -e discovery.typesingle-node \ -e ES_JAVA_OPTS-Xms512m -Xmx512m \ elasticsearch:9.0.1 3.3.2 拷贝容器内部的文件 将容器内部的文件拷贝出来后面使用 docker cp es9:/usr/share/elasticsearch/data /usr/local/soft/es docker cp es9:/usr/share/elasticsearch/plugins /usr/local/soft/es docker cp es9:/usr/share/elasticsearch/config /usr/local/soft/es 3.3.3 文件授权 后续会用到 chmod 777 -R config/ data/ plugins/ 3.3.4 移除镜像 使用下面的命令移除镜像 docker stop es9 docker rm es9 3.3.5 重启es容器 执行下面的命令重启es docker run -d \ --name es9 \ --network elastic \ -p 9200:9200 \ -p 9300:9300 \ --privileged \ -v /usr/local/soft/es/data:/usr/share/elasticsearch/data \ -v /usr/local/soft/es/plugins:/usr/share/elasticsearch/plugins \ -v /usr/local/soft/es/config:/usr/share/elasticsearch/config \ -e discovery.typesingle-node \ -e ES_JAVA_OPTS-Xms512m -Xmx512m \ elasticsearch:9.0.1 3.3.6 修改es配置参数 在挂载目录中修改yml配置调整下面的参数调整完毕后注意重启es容器 3.3.7 启动kibana容器 使用下面的命令启动kibana容器 docker run -d \ --name kibana \ --network elastic \ -p 5601:5601 \ --privileged \ -e ELASTICSEARCH_HOSTShttp://elasticsearch:9200 \ kibana:9.0.1 3.3.8 拷贝容器内的文件 将容器内的文件拷贝出来 3.3.9 文件目录授权 为确保后续访问权限给文件做下授权 然后移除容器 docker stop kibana docker rm kibana 3.3.10 创建kibana账户 创建为kibana创建新账户用于访问elasticsearch容器内 /usr/share/elasticsearch/bin 目录下 对账户授权(123456) 3.3.11 修改容器外挂载目录中的kibana.yml 在yml中新增下面的配置 xpack.screenshotting.browser.chromium.disableSandbox: true elasticsearch.username: admin elasticsearch.password: 123456 3.3.12 重启kibana容器 使用下面的命令重启容器 docker run -d \ --name kibana \ --network elastic \ -p 5601:5601 \ --privileged \ -v /usr/local/soft/kibana/data:/usr/share/kibana/data \ -v /usr/local/soft/kibana/config:/usr/share/kibana/config \ -e ELASTICSEARCH_HOSTShttp://elasticsearch:9200 \ kibana:9.0.1 四、ES9 英文语义检索操作过程 Elasticsearch 提供了开箱即用的 ELSER(Elastic Learned Sparse Encoder)模型适合英文语义搜索。对于中文可以使用阿里云的稀疏向量模型。 4.1 英文语义检索操作案例 4.1.1 创建索引 执行下面的命令创建一个索引 PUT index-songs-semantic {mappings: {properties: {song_title: {type: text},artist: {type: keyword},lyric: {type: semantic_text,inference_id: .multilingual-e5-small-elasticsearch }}} } 看到右侧的执行成功说明索引已创建 如果后续待检索的文档中有中文可以使用阿里云的大模型参考下面的命令设置 需要提前配置好与阿里云向量模型的授权后文中会有说明 PUT alibaba_sparse {mappings: {properties: {content: {type: semantic_text,inference_id: alibabacloud_ai_search_sparse}}} } 4.1.2 索引添加数据 为上述创建的索引增加几条数据 POST index-songs-semantic/_doc/1 {song_title: ...Baby One More Time,artist: Britney Spears,lyric: When Im with you, I lose my mind, give me a sign }POST index-songs-semantic/_doc/2 {song_title: Crazy,artist: Britney Spears,lyric: You drive me crazy, I just cant sleep, Im so excited, Im in too deep }POST index-songs-semantic/_doc/3 {song_title: We wil rock you,artist: Britney Spears,lyric: Shouting in the street, gonna take on the world someday } 依次点击将3条数据添加进去 注意如果在为索引添加数据过程中出现403的license错误请执行下面的命令 POST /_license/start_trial?acknowledgetrue 请注意acknowledgetrue 参数是必需的因为它确认了你理解此许可证将在30天后到期。此外每个主要版本只能激活一次试用期。如果您的集群已经激活过试用期则需要等到新的主要版本发布或者通过官方渠道申请延长试用期。 4.1.3 执行语义搜索 使用 semantic 查询 简单来说语义搜索就是你输入一个与文档中的意思差不多的文本能够给你搜索出来 GET index-songs-semantic/_search {query: {semantic: {field: lyric,query: song lyrics about love}} } 使用上面的语句在kibana中执行可以看到能够按照评分高低将符合条件的文档检索出来 match 查询(9.0新特性) 简单来说使用es9的语义检索功能像之前那样使用es的查询语法即可 五、ES9 中文语义检索操作过程 接下来通过案例操作演示下ES9的中文语义检索完整的操作过程。 5.1 配置向量模型 在文章开头谈到ES9的语义检索原理时其中一个非常重要的点就是数据存储在es的时候其内部有一个数据向量化的过程即向量化后的数据才能在后续的检索中借助语义检索查出来因此在这里我们先选择阿里云的文本向量大模型结合es9一起来完成对于中文语义检索的过程。 5.1.1  获取向量模型和apikey 进入阿里云平台获取文本向量模型并获取apikey平台访问入口智能开放搜索 OpenSearch 控制台 1找到文本向量模型 如下在服务广场找到下面的文本向量化模型后续将会使用这个模型 点击查看详情可以看到里面提供针对实际业务中多种场景下的具体服务信息在后文的配置中使用哪一个只需要拷贝对应的服务ID即可。 2创建apikey 初次进来需要手动创建一个apikey 5.1.2 注册推理API访问入口 如何才能让后续写入es的索引数据与AI大模型进行联动呢首先需要通过es的API进行服务注册即打通ES与AI大模型交互在kibana中执行下面的命令 PUT _inference/text_embedding/text_embedding_v1 {service:alibabacloud-ai-search,service_settings:{api_key:你的apikey,service_id:ops-text-embedding-001,host:default-8xf9.platform-cn-shanghai.opensearch.aliyuncs.com,workspace:default} } 看到下面的界面创建成功 5.2 创建索引并增加数据 5.2.1 添加索引 使用下面的语句创建一个索引 PUT poetry {mappings: {properties: {author: {type: keyword},title: {type: text},content: {type: semantic_text,inference_id: text_embedding_v1 }}} } 5.2.2 增加几条数据 使用下面的语句增加几条数据 POST poetry/_doc/1 {author: 杜甫,title: 春望,content: 国破山河在城春草木深。感时花溅泪恨别鸟惊心。 }POST poetry/_doc/2 {author: 李白,title: 静夜思,content: 床前明月光疑是地上霜。举头望明月低头思故乡。 }POST poetry/_doc/3 {author: 王维,title: 相思,content: 红豆生南国春来发几枝。愿君多采撷此物最相思。 } es的语义检索在数据进行存储的时候看到的是为索引增加了一些数据其实底层还增加了数据向量化的操作过程 5.3 语义检索效果模拟 通过上一步操作之后数据不仅存储到索引而且也被向量化了实际在进行检索的时候仍然是使用es常规的检索语法即可首先进行正常的检索我们使用关键字检索 GET poetry/_search {query: {match: {content: 明月光}} } 通过检索的结果可以看到能够按照预期将相似度最高的排在最前面 然后在使用下面的语句这一句是根据文档中的第一条数据推断出来的近似语句 细心的同学可以发现这里直接使用了es大家熟悉的match语法 GET poetry/_search {query: {match: {content: 描述家国大义诗句有哪些}} } 点击查询之后神奇的现象出现了能够正确的将语义最相似的第一条诗句返回 更近一步使用es进行多条件查询时候语义检索仍然有效比如在下面的组合条件查询中我们限定了两个条件通过查询结果来看语义检索仍然可以得到正确的返回结果 POST poetry/_search {size: 20,query: {bool: {must: [{match: {content: {query:查找与思乡相关的诗句}}},{term: {author: {value: 李白}}}]}} } 检索结果如下 六、写在文末 本文通过较大的篇幅详细介绍了es9的语义检索功能搭配向量大模型可以在实际业务中发挥很重要的作用有兴趣的同学可以基于此继续深入研究本篇到此结束感谢观看。
http://www.tj-hxxt.cn/news/141140.html

相关文章:

  • 阿里云备案个人可以做网站吗买手表去哪个网站买是正品的
  • 哪里可以做虚拟货币网站阿里巴巴1688官网网页版
  • 卖辅助网站怎么做查企业信息的黄页有哪些
  • 厦门最早做网站的公司深圳软件项目定制开发费用
  • 锦州网站建设品牌手机网站建设推荐乐云seo
  • 福建省建设干部培训中心网站首页扬州做网站多少钱
  • 网络营销品牌推广公司哪家好seo见到效果再付费
  • 查看网站源代码建站可以几个月网站没有排名
  • 淘宝客做网站备注怎么写的易支付做网站接口怎么赚钱
  • 养老院为什么要建设网站做英文的小说网站有哪些
  • 推广网站的广告怎样做东莞食品网站建设
  • 企业网站排名运营网页编辑栏无法写入
  • 怎样让自己做的网站被百度收录gcms是什么意思
  • h5网站怎么做wordpress开源程序
  • 现在那个网站做视频最赚钱吗海南微信网站制作平台
  • 部队网站制作网上商城开题报告
  • 牛搬家网企业网站排名宁波网站建设rswl
  • 市南区网站建设炫酷网页html代码
  • 台式服务器怎么做网站免费的设计软件
  • 自动化的网站建设推广怎么推
  • 旅游网站怎么自己做网站空间大小
  • 怎样做营销型网站河南建筑官网首页
  • 网站推广专业做网站的费用记哪个科目
  • 户县做网站改变WordPress界面
  • 网站建设合同书(范本)网站建设与管理代码样式
  • 阿里云建站套餐个人站长还有什么类型的网站可以做
  • 成都网站建设优化公司电话杭州公司网站域名续费
  • 临淄建设局网站四川省建设科技协会网站首页
  • 江西住房和城乡建设网站做优化网站是什么意思
  • 网站改版升级总结jsp网站开发实例 pdf