ElasticSearch搜索引擎学习(一)

本文详细介绍了如何使用Elasticsearch创建索引库、映射、文档,并提供了具体操作步骤及示例,同时还深入探讨了IK分词器的配置与使用方法。

1.创建索引库

使用postman或curl这样的工具创建:
put http://localhost:9200/索引库名称
{
	"settings":{
		"index":{
		"number_of_shards":1,
		"number_of_replicas":0
		}
	}
}

2.创建映射

post http://localhost:9200/索引库名称/类型名称/_mapping
{
	"properties": {
		"name": {
		"type": "text"
		},
		"description": {
		"type": "text"
		},
		"studymodel": {
		"type": "keyword"
		}
	}
}

3 创建文档

ES中的文档相当于MySQL数据库表中的记录。
发送:put 或Post http://localhost:9200/索引库名称/类型名称/id值
(如果不指定id值ES会自动生成ID)
{
	"name":"Bootstrap开发框架",
	"description":"Bootstrap是由Twitter推出的一个前台页面开发框架,在行业之中使用较为广泛。此开发框架包
	含了大量的CSS、JS程序代码,可以帮助开发者(尤其是不擅长页面开发的程序人员)轻松的实现一个不受浏览器限制的
	精美界面效果。",
	"studymodel":"201001"
}

4.搜索文档

4.1根据课程id查询文档
get http://localhost:9200/索引库名称/类型名称/id值
4.2查询所有记录
发送 get http://localhost:9200/索引库名称/类型名称/_search
4.3查询名称中包括spring 关键字的的记录
发送:get http://localhost:9200/索引库名称/类型名称/_search?q=name:bootstrap
4.4查询学习模式为201001的记录
发送 get http://localhost:9200/索引库名称/类型名称/_search?q=studymodel:201001

5.IK分词器

在添加文档时会进行分词,索引中存放的就是一个一个的词(term),当你去搜索时就是拿关键字去匹配词,最终
找到词关联的文档。
测试当前索引库使用的分词器:
post 发送:localhost:9200/_analyze	
{"text":"测试分词器,后边是测试内容:spring cloud实战"}

6.安装IK分词器(版本要一致)

使用IK分词器可以实现对中文分词的效果
下载IK分词器:(Github地址:https://github.com/medcl/elasticsearch-analysis-ik)
解压,并将解压的文件拷贝到ES安装目录的plugins下的ik目录下	

7.两种分词模式

ik分词器有两种分词模式:ik_max_word和ik_smart模式。
1、ik_max_word
会将文本做最细粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为“中华人民共和国、中华人民、中华、
华人、人民共和国、人民、共和国、大会堂、大会、会堂等词语。
2、ik_smart
会做最粗粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为中华人民共和国、人民大会堂	

8.自定义词库

如果要让分词器支持一些专有词语,可以自定义词库。
iK分词器自带一个main.dic的文件,此文件为词库文件	

9.映射

6.1 映射维护方法
1、查询所有索引的映射:
GET: http://localhost:9200/_mapping
2、创建映射
post 请求:http://localhost:9200/索引库名称/类型名称/_mapping	

10.常用映射类型

10.1字符串包括text和keyword两种类型:
1、text
1)analyzer
通过analyzer属性指定分词器。
下边指定name的字段类型为text,使用ik分词器的ik_max_word分词模式
"name": {
"type": "text",
"analyzer":"ik_max_word"
}
对于ik分词器建议是索引时使用ik_max_word将搜索内容进行细粒度分词,搜索时使用ik_smart提高搜索精确性
"name": {
"type": "text",
"analyzer":"ik_max_word",
"search_analyzer":"ik_smart"
}
10.2 index
通过index属性指定是否索引。
默认为index=true,即要进行索引,只有进行索引才可以从索引库搜索到。
但是也有一些内容不需要索引,比如:商品图片地址只被用来展示图片,不进行搜索图片,此时可以将index设置
为false。
删除索引,重新创建映射,将pic的index设置为false,尝试根据pic去搜索,结果搜索不到数据
"pic": {
"type": "text",
"index":false
}
10.3 store
是否在source之外存储,每个文档索引后会在 ES中保存一份原始文档,存放在"_source"中,一般情况下不需要设置
store为true,因为在_source中已经有一份原始文档了
内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值