实验描述
Elasticsearch 是一个基于 Lucene 的实时的分布式搜索和分析引擎,设计用于云计算中能够达到实时搜索,稳定,可靠,快速,并支持 RESTFUL 风格的 url 访问。全文检索、多语言检索以及基于地理位置信息检索在 Elasticsearch 上应用广泛,本场实验将分别介绍如何使用 Elasticsearch8.5 版本进行全文检索、多语言检索和地理位置查询三个 Elasticsearch 基础检索子场景的实现。
实验资源
本实验三个子场景使用到的实验资源和配置相同:
说明:本示例遵循最小原则,使用满足场景需求的最小资源。
资源:阿里云Elasticsearch实例。
付费说明: 阿里云Elasticsearch 新用户可享受2C4G规格免费试用1个月,若免费试用资格已过期或已无试用资格,可选择按量付费资源,推荐使用4C8G规格,3.7元起/时(不同地域价格有所差异)。
背景知识
本场景主要涉及以下云产品和服务:
阿里云Elasticsearch 是基于开源 Elasticsearch 构建的全托管 Elasticsearch 云服务,在100%兼容开源功能的同时,支持开箱即用、按需付费。不仅提供云上开箱即用的 Elasticsearch、Logstash、Kibana、Beats 在内的 Elastic Stack 生态组件,还与 Elastic 官方合作提供免费 X-Pack(白金版高级特性)商业插件,集成了安全、SQL、机器学习、告警、监控等高级特性,被广泛应用于实时日志分析处理、信息检索、以及数据的多维查询和统计分析等场景。
前置知识
- 了解 Elasticsearch 相关的基础知识。
- 了解 Elasticsearch 检索相关知识
- 了解 Elasticsearch 分词相关知识。
创建实例
选择一:开通免费试用(开发者规格)
说明:本实验三个子场景的实例创建步骤相同。
- 访问阿里云免费试用-检索分析服务Elasticsearch版商品试用卡片。单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。
- 成功登录后,单击检索分析服务 Elasticsearch卡片上的立即试用。
- 在配置Elasticsearch实例信息面板,完成参数配置。
完成本教程需要的配置如表格所示,未提及的配置保持默认或按需修改。
配置项 |
教程配置 |
实例类型 |
通用商业版 |
Elasticsearch版本 |
8.5 本教程的操作和示例均以Elasticsearch 8.5版本为例,其他版本操作和示例可能略有差别,详细信息请参见Elasticsearch快速入门。 |
场景初始化配置 |
通用场景 |
地域和可用区 |
|
数据节点规格 |
2核4 GB开发者规格 |
数据节点存储类型 |
高效云盘 |
数据单节点存储空间 |
20 GB |
数据节点数量 |
3 |
Kibana规格 |
1核2 GB |
专有网络 |
选择您已创建的专有网络。如果没有创建,请参见创建和管理专有网络创建。 |
虚拟交换机 |
选择您已创建的虚拟交换机。如果没有创建,请参见创建和管理交换机创建。 |
资源组 |
选择您已创建的资源组,可以选择默认资源组。如果没有创建,请参见创建资源组创建。 |
实例名称 |
test-es |
登录名 |
elastic |
登录密码 |
自定义密码 |
服务协议 |
选中 |
- 单击立即试用,并按照页面提示进入控制台或直接点击登录控制台。
- 在阿里云Elasticsearch控制台的左侧导航栏,单击Elasticsearch实例。
- 在顶部菜单栏,选择购买实例时所配置的地域,本教程为华北2(北京)。在实例列表中查看创建成功的实例及其状态。实例创建后,大约需要5分钟生效。等待实例生效且状态变为正常,才可继续执行后续步骤。
选择二:开通后付费实例(以4C8G为例)
说明:本实验三个子场景的实例创建步骤相同。
- 访问检索分析服务Elasticsearch版实例创建页面。单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。
- 点击页面【创建」按钮,进入购买页面,完成实例创建配置。本文使用8.5.1版本的实例,其他配置请自定义选择。配置参数的详细说明,请参见购买页面参数。
- 单击创建->集群配置->网络及系统配置,确认订单。
- 预览实例配置,选中服务协议,单击立即购买。
- 提示开通成功后,单击管理控制台,在产品列表中选择Elasticsearch,进入阿里云Elasticsearch的控制台的概览页面。
- 在顶部菜单栏,选择地域。
- 在左侧导航栏,单击Elasticsearch实例,在实例列表中查看创建成功的阿里云Elasticsearch实例。
访问实例
等待实例状态变为正常,即可执行以下步骤,通过 Kibana 访问实例。
说明 本实验三个子场景的实例访问步骤相同;
您也可以通过curl命令和客户端方式访问实例。具体操作,请参见访问实例。
- 在Elasticsearch实例列表中,单击目标实例ID。
- 在左侧导航栏,选择配置与管理 > 可视化控制。
- 可选:在Kibana区域,单击修改配置,配置Kibana的公网访问白名单,在IP白名单中加入您客户端的IP地址。首次从公网入口进入Kibana控制台且公网访问配置未修改时,系统会提示您修改配置,您可根据页面提示进行修改。具体操作,请参见配置Kibana公网或私网访问白名单。
百度ip,可查询本机的公网ip。
- 返回集群管理页面,在Kibana区域,单击公网入口。
- 在登录页面输入账号和密码,单击登录。账号为elastic,密码为您创建实例时设置的密码。如果忘记可重置,重置密码的具体操作和注意事项,请参见重置实例访问密码。
- 在登录成功页面,单击Explore on my own。
- 在左侧导航栏,选择最下面“Management”单击“开发工具”。
- 在Console页签下,执行如下命令访问Elasticsearch实例。
GET /
场景一 全文检索实验
实验简介
体验此场景后,可以掌握的知识有:
- 开通阿里云Elastisearch实例。
- 如何访问且使用kibana进行索引的创建、文档插入、文档查询。
- 基于Elasticsearch分词检索和全文检索匹配。
体验目标
通过本教程的操作,在Elasticsearch实例上通过kibana进行分词检索和全文检索匹配。
步骤一:上传文件并创建索引
1、本地文件准备
2、在kibana首页,选择“上传文件”
3、浏览本地文件
4、编辑字段名称
5、导入–>高级 ,设置索引名称,字段分词器
6、确认数据插入成功。
GET /message/_search { "query":{ "match_all":{} } }
步骤二:检索数据
1、全文检索,搜索”双11“相关商品信息
#检索文档 GET message/_search { "query": { "match": { "content": "双11" } } }
完成检索后,返回如下结果。
2、全文检索,搜索”婴儿”相关商品信息。
GET message/_search { "query": { "match": { "content": "婴儿" } } }
完成检索后,返回如下结果。
3、全文检索,搜索“儿童汽车”相关商品信息。
#使用match_phrase加slop参数匹配 GET message/_search { "query": { "match_phrase": { "city": { "query": "儿童汽车", "slop": 10 } } } }
完成检索后,返回如下结果。
场景二 多语言检索实验
实验简介
体验此场景后,可以掌握的知识有:
- 开通阿里云Elastisearch实例
- 如何访问且使用kibana进行索引的创建、数据导入
- 针对多语言搜索在Elasticsearch上如何创建索引,以及如何进行检索匹配。
体验目标
通过本教程的操作,在Elasticsearch实例上通过kibana进行多语言的查询检索。
1、英语全文搜索支持
预期结果:三个搜索语句返回的结果最前面的数据_id的分别为:1,4,2
1.1 创建索引
PUT /english_index { "settings": { "number_of_shards": 5, "number_of_replicas": 1 }, "mappings": { "properties": { "text": { "type": "text" } } } }
1.2 插入数据
POST /_bulk { "index": { "_index": "english_index","_id": "1" }} { "text" : "Hangzhou, referred to as "Hangzhou", formerly known as Lin 'an and Qiantang, is a prefecture-level city, provincial capital, sub-provincial city, mega-city of Zhejiang Province, the core city of Hangzhou metropolitan area, the economic, cultural, scientific and educational center of Zhejiang Province approved by The State Council, and one of the central cities of the Yangtze River Delta. As of 2019, the city has jurisdiction over 10 municipal districts, 2 counties and 1 county-level city, with a total area of 16,850 square kilometers and a built-up area of 648.46 square kilometers. By the end of 2021, Hangzhou had a permanent population of 12.204 million. In 2021, the city's GDP reached 1,810.9 billion yuan." } { "index": { "_index": "english_index","_id": "2" }} { "text" : "Hangzhou is one of the first national historical and cultural cities, known as the "Southeast county" in the world. Excavations at the Trans-Lake Bridge site show that humans lived here more than 8,000 years ago. The Liangzhu Culture dating back more than 5,000 years is known as the "dawn of Chinese civilization". Hangzhou has a history of more than 2,200 years since it was established as a county in the Qin Dynasty. It was once the capital of the Wu Yue State and the Southern Song Dynasty." } { "index": { "_index": "english_index","_id": "3" }} { "text" : "Hangzhou is located in East China, the lower reaches of Qiantang River, the southeast coast, the north of Zhejiang Province, and the southern end of the Beijing-Hangzhou Grand Canal. The geographical coordinates are between 29°11 '-30 °34' N and 118°20 '-120 °37' E. Hangzhou is the core city of the Hangzhou Bay Greater Bay Area and the center city of the G60 Science and Innovation Corridor. Hangzhou has numerous cultural and historical sites. There are a large number of natural and cultural landscape relics in and around the West Lake, representative of which are West Lake culture, Liangzhu culture, silk culture and tea culture." } { "index": { "_index": "english_index","_id": "4" }} { "text" : "Hangzhou is known as "heaven on earth" because of its beautiful scenery. Thanks to the convenience of the Beijing-Hangzhou Grand Canal and treaty ports, as well as its own developed silk and grain industries, Hangzhou was historically an important commercial distribution center. Since the new century, with the drive of Alibaba and other high-tech enterprises, the Internet economy has become a new economic growth point in Hangzhou. Hangzhou hosted the 2016 G20 Summit, the 2018 World Short Course Swimming Championships and the 2022 Asian Games. Hangzhou ranked 5th in China's Top 100 Cities list in 2020." }
1.3 搜索数据以及查询结果
搜索数据
#搜索语句一 GET english_index/_search { "query": { "match": { "text": "The GDP of Hangzhou is increasing gradually" } } } #搜索语句二 GET english_index/_search { "query": { "match": { "text": "Hangzhou is one of the top 100 cities" } } } #搜索语句三 GET english_index/_search { "query": { "match": { "text": "Hangzhou is one of the first national historical and cultural city" } } }
查询结果:搜索语句一结果符合预期,id=1排在最前面
查询结果:搜索语句二结果符合预期,id=4排在最前面
查询结果:搜索语句三结果符合预期,id=2排在最前面
2、法语全文搜索支持
预期结果:三个搜索语句返回的结果最前面的数据_id的分别为:1,4,2
2.1 创建索引
PUT /french_index { "settings": { "number_of_shards": 5, "number_of_replicas": 1 }, "mappings": { "properties": { "text": { "type": "text", "analyzer": "french" } } } }
2.2 插入数据
POST /_bulk { "index": { "_index": "french_index","_id": "1" }} { "text" : "Hangzhou, appelé «hang», anciennement connu sous le nom de linan et qiantang, la ville de la province de zhejiang, la capitale de la province, la ville vice-provinciale, la mégapole, la ville du noyau de la zone métropolitaine de hangzhou, le conseil d’état a approuvé et identifié le centre économique, culturel, scientifique et éducatif de la province de zhejiang, l’une des villes du centre du delta du yangtze. À partir de 2019, la ville est administrée par 10 districts municipaux, 2 comtés et une municipalité au niveau de comté. La superficie totale de la ville est de 16850 kilomètres carrés et la zone bâtie de 648,46 kilomètres carrés. À la fin de 2021, la ville de hangzhou a une population permanente de 12 204 000 personnes. En 2021, la ville a réalisé un produit régional brut de 1810,9 milliards de yuans." } { "index": { "_index": "french_index","_id": "2" }} { "text" : "Hangzhou est l’une des premières villes historiques et culturelles nationales, célèbre pour son comté célèbre du sud-est. Les fouilles sur le site du pont trans-lac ont révélé que des humains y ont peuplé il y a plus de 8000 ans. La culture liangzhu, qui date de plus de 5000 ans, est appelée «l’aube de la civilisation chinoise». Hangzhou a une histoire de plus de 2200 ans depuis la création du comté sous la dynastie qin. Hangzhou a été la capitale de wuyue et de song du sud." } { "index": { "_index": "french_index","_id": "3" }} { "text" : "Hangzhou est située dans la région de l’est de la Chine, en aval de la rivière qiantang, sur la côte sud-est, au nord du zhejiang et à l’extrémité sud du grand canal de pékin hangzhou. Ses coordonnées géographiques se situent entre 29° 11’ - 30° 34’ de latitude nord et 118° 20’ - 120° 37’ de longitude est. Hangzhou est la ville centrale de la grande baie de la baie de hangzhou et la ville centrale du corridor G60 kochuang. Hangzhou a de nombreux monuments humanistes. Il y a un grand nombre de vestiges de paysages naturels et humains dans et autour de xihu. Les représentants sont la culture xihu, la culture liangzhu, la culture de la soie et la culture du thé." } { "index": { "_index": "french_index","_id": "4" }} { "text" : "Hangzhou a la réputation de «paradis sur terre» en raison de ses paysages magnifiques. Bénéficiant de la commodité du grand canal de pékin et des ports commerciaux, ainsi que de ses propres industries bien développées de la soie et des céréales, hangzhou a été historiquement un important centre de distribution commerciale. Depuis le nouveau siècle, avec alibaba et d’autres entreprises de haute technologie, l’économie d’internet est devenue le nouveau point de croissance économique de hangzhou. Le sommet du G20 2016, le championnat du monde de natation en piscine courte 2018 et les jeux asiatiques 2022 ont eu lieu à hangzhou. Top 100 des villes chinoises en 2020. Hangzhou est la 5ème." }
2.3 搜索数据以及查询结果
#搜索语句一 GET french_index/_search { "query": { "match": { "text": "La valeur totale de la production de hangzhou augmente progressivement" } } } #搜索语句二 GET french_index/_search { "query": { "match": { "text": "Hangzhou est top 100 des villes chinoises en 2020." } } } #搜索语句三 GET french_index/_search { "query": { "match": { "text": "Hangzhou est l’une des premières villes historiques et culturelles" } } }
查询结果:搜索语句一结果符合预期,id=1排在最前面
查询结果:搜索语句二结果符合预期,id=4排在最前面
查询结果:搜索语句三结果符合预期,id=2排在最前面
3、支持多个主要语种
包括汉语、英语、法语、德语、俄语、日语、韩语、越语、缅语
3.1 开启“允许自动创建索引”
3.2 在kibana运行以下指令
POST language/_doc { "中文": "中文", "英语": "english", "法语": "Français", "德语": "Deutsch", "日语": "にほんご", "俄语": "Русский язык", "韩语": "한국어", "越南语": "Tiếng Việt", "缅甸语": "မြန်မာဘာသာ" }
3.3 查看返回结果
使用GET language/_search指令查看是否返回了与插入数据一样的结果
场景三 地理位置查询实验
实验简介
体验此场景后,可以掌握的知识有:
- 开通阿里云Elastisearch实例
- 使用kibana进行索引的创建、数据导入
- 针对地理位置经纬度信息,进行特殊字段类型的设定,并基于范围进行检索匹配。
体验目标
通过本教程的操作,在Elasticsearch实例上通过kibana进行地理位置信息的查询检索。
步骤一:创建索引并插入测试数据
1、创建索引attractions,指定userid为keyword字段、locationname为text字段、location为geo_point字段、accesstime为date字段。
PUT /attractions { "mappings": { "properties": { "userid": { "type": "keyword" }, "locationname": { "type": "text" }, "location": { "type": "geo_point" }, "accesstime": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" } } } }
2、通过bulk方式插入测试数据
POST /_bulk { "index": { "_index": "attractions","_id": "1" }} {"userid": "001", "locationname": "颐和园", "location":[116.273987,39.992019], "accesstime": "2021-05-01 10:30:00"} { "index": { "_index": "attractions","_id": "2" }} {"userid": "002", "locationname": "中关村", "location":[116.326933,39.981078], "accesstime": "2021-05-02 14:45:30"} { "index": { "_index": "attractions","_id": "3" }} {"userid": "003", "locationname": "动物园", "location":[116.338239,39.942547], "accesstime": "2021-05-03 09:20:15"} { "index": { "_index": "attractions","_id": "4" }} {"userid": "004", "locationname": "北京大学", "location":[116.319935,39.996275], "accesstime": "2021-05-04 16:55:10"} { "index": { "_index": "attractions","_id": "5" }} {"userid": "005", "locationname": "香山公园", "location":[116.191247,39.997232], "accesstime": "2021-05-05 13:00:45"} { "index": { "_index": "attractions","_id": "6" }} {"userid": "006", "locationname": "圆明园", "location":[116.309868,40.018307], "accesstime": "2021-05-06 19:10:20"}
步骤二:查询数据
1、通过userid,查询用户访问景点的记录。
GET /attractions/_search { "query": { "query_string": { "default_field": "userid", "query": "005" } } }
2、查询该景点附近10公里范围内的其他景点以及用户的访问时间
GET /attractions/_search { "query": { "bool": { "filter": { "geo_distance": { "distance": "10km", "location": { "lat": 116.191247, "lon": 39.997232 } } } } } }
文章来源于互联网:Elasticsearch 基础检索(全文检索/多语言检索/地理位置查询)
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=14289,转载请注明出处。
评论0