问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

elasticsearch 把很多类型都放在一个索引下面 会不会导致查询慢

发布网友 发布时间:2022-05-01 09:07

我来回答

1个回答

热心网友 时间:2023-10-10 03:53

主要看数据量
ES索引优化篇主要从两个方面解决问题,
一是索引数据过程;
二是检索过程。(本文主要介绍)
索引数据过程我在上面几篇文章中有提到怎么创建索引和导入数据,但是大家可能会遇到索引数据比较慢的过程。其实明白索引的原理就可以有针对性的进行优化。ES索引的过程到相对Lucene的索引过程多了分布式数据的扩展,而这ES主要是用tranlog进行各节点之间的数据平衡。所以从上我可以通过索引的settings进行第一优化:
“index.translog.flush_threshold_ops”: “100000″
“index.refresh_interval”: “-1″,
这两个参数第一是到tranlog数据达到多少条进行平衡,默认为5000,而这个过程相对而言是比较浪费时间和资源的。所以我们可以将这个值调大一些还是设为-1关闭,进而手动进行tranlog平衡。第二参数是刷新频率,默认为120s是指索引在生命周期内定时刷新,一但有数据进来能refresh像lucene里面commit,我们知道当数据addDoucment会,还不能检索到要commit之后才能行数据的检索所以可以将其关闭,在最初索引完后手动refresh一之,然后将索引setting里面的index.refresh_interval参数按需求进行修改,从而可以提高索引过程效率。
另外的知道ES索引过程中如果有副本存在,数据也会马上同步到副本中去。我个人建议在索引过程中将副本数设为0,待索引完成后将副本数按需量改回来,这样也可以提高索引效率。
“number_of_replicas”: 0
上面聊了一次索引过程的优化之后,我们再来聊一下检索速度比较慢的问题,其实检索速度快度与索引质量有很大的关系。而索引质量的好坏与很多因素有关。
一、分片数
分片数,与检索速度非常相关的的指标,如果分片数过少或过多都会导致检索比较慢。分片数过多会导致检索时打开比较多的文件别外也会导致多台服务器之间通讯。而分片数过少为导至单个分片索引过大,所以检索速度慢。
在确定分片数之前需要进行单服务单索引单分片的测试。比如我之前在IBM-3650的机器上,创建一个索引,该索引只有一个分片,分别在不同数据量的情况下进行检索速度测试。最后测出单个分片的内容为20G。
所以索引分片数=数据总量/单分片数
目前,我们数据量为4亿多条,索引大小为近1.5T左右。因为是文档数据所以单数据都中8K以前。现在检索速度保证在100ms 以下。特别情况在500ms以下,做200,400,800,1000,1000+用户长时间并发测试时最坏在750ms以下.
二、副本数
副本数与索引的稳定性有比较大的关系,怎么说,如果ES在非正常挂了,经常会导致分片丢失,为了保证这些数据的完整性,可以通过副本来解决这个问题。建议在建完索引后在执行Optimize后,马上将副本数调整过来。
大家经常有一个误去副本越多,检索越快,这是不对的,副本对于检索速度其它是减无增的我曾做过实现,随副本数的增加检索速度会有微量的下降,所以大家在设置副本数时,需要找一个平衡值。另外设置副本后,大家有可能会出现两次相同检索,出现出现不同值的情况,这里可能是由于tranlog没有平衡、或是分片路由的问题,可以通过?preference=_primary
让检索在主片分上进行。
三、分词
其实分词对于索引的影响可大可小,看自己把握。大家越许认为词库的越多,分词效果越好,索引质量越好,其实不然。分词有很多算法,大部分基于词表进行分词。也就是说词表的大小决定索引大小。所以分词与索引膨涨率有直接链接。词表不应很多,而对文档相关特征性较强的即可。比如论文的数据进行建索引,分词的词表与论文的特征越相似,词表数量越小,在保证查全查准的情况下,索引的大小可以减少很多。索引大小减少了,那么检索速度也就提高了。
四、索引段
索引段即lucene中的segments概念,我们知道ES索引过程中会refresh和tranlog也就是说我们在索引过程中segments number不至一个。而segments number与检索是有直接联系的,segments number越多检索越慢,而将segments numbers 有可能的情况下保证为1这将可以提到将近一半的检索速度。
$ curl -XPOST ‘http://localhost:9200/*/_optimize?
max_num_segments =1′
五、删除文档
删除文档在Lucene中删除文档,数据不会马上进行硬盘上除去,而进在lucene索引中产生一个.del的文件,而在检索过程中这部分数据也会参与检索,lucene在检索过程会判断是否删除了,如果删除了在过滤掉。这样也会降低检索效率。所以可以执行清除删除文档。
$ curl -XPOST ‘http://localhost:9200/*/_optimize?
only_expunge_deletes =true
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 关公是哪里人,哪年生? DN25的蒸汽安全阀有法兰连接吗 DN25直径多大? delphi连接SQL数据库 adoquery sql属性怎么设置 荣耀9x充电最高支持多少 唯美的歌词 运动无线耳机哪个品牌的好? 找歌词 歌词 求网络歌手的十二月的歌词 求推荐一款八百以下的入耳式耳机,希望是平头的,低音频出色的。 这首个叫是名字?歌词 七月得风偷进恋花的香气七月的你又住进谁的心 求《柒月》-剪刀石头布,德歌词,很赞,谢谢 音响 放线 需要注意什么? 求柒月特别版的歌词,我是在酷狗听的。歌名是:石头剪子布 - 柒月^特别版 有没有剪刀石头布唱的(柒月)的歌词? 石头剪子布的柒月 LRC歌词 谁知道网络歌曲柒月的歌词! 谁知道《柒月》这首歌的歌词???谢谢~~~ 柒月 的歌词谁知道? 有没有大神先把这个暖̶心̶改成于果? 关公是那里人? ES中索引,如何将按天滚动的索引合并为一月一个索引 苹果手机如何让程序后台继续运行 山东人拜关公吗? Java代码查询es 的索引是yellow的状态,怎么可以查询不报错? elasticsearch restclient 客户端 如何获取es库所有索引名称或列表 湖南一头耕牛顶死主人被警方击毙,这头牛究竟为何这么做? 如何查看es的倒排索引的物理文件大小 黑龙江一700斤疯牛出逃民警开枪击毙,警方为何会采取开枪击毙的方式? 河南南阳两只老虎逃出笼舍咬死饲养员,之后被警方击毙,你怎么看? 湖南一耕牛顶死主人被警方击毙,耕牛为何会突然发疯呢? 重庆北碚民警当街击毙烈犬引争议,这条德牧什么来历? 警方当街击毙德牧,你觉得狗大街咬人应该直接击毙吗? LOL赏金猎人是AP还是AD?求出装。 赏金猎人是AD还是AP,怎么出装,主什么技能, 求lol赏金猎人是AD好还是AP好?给理由 男人喜欢什么样的婚外情人?是不是跟老婆性格互补?比如我很腼腆,我老公就会喜欢大方开朗的 LOL赏金猎人怎么出AP装 好多都是AD流的 但是她有三个技能都是附加魔法伤害 过了21年,当年风靡全国的小燕子已经人到中年,还那么有气质吗? 赞美小燕子的成语