ES搜索引擎的优化技巧

tamoadmin 市场行情 2024-04-07 19 0

ES搜索引擎的优化技巧主要包括以下几个方面:

1.写入优化

在将数据写入ES时,需要注意以下几点:

读取数据:首先,需要从数据源读取出数据到内存中。如果字段比较多,都需要查询,那么即使限制查询结果的数量,如limit

10,也可能需要花费较长的时间。

组装数据:将数据读取到Java内存中后,需要构造请求参数刷ES。ES建议每次bulk

ES搜索引擎的优化技巧

5~15M数据。如果一次性将数据读取到内存中,然后再做业务处理,可能会导致内存泄露。

提高ES索引效率:可以通过多线程刷数据来提高索引效率。但是,需要注意的是,如果使用size为20的无界队列,可能会导致耗尽资源,任务线程占用的内存占用了80%以上的内存,其他任务可能被拖垮。

2.搜索优化

在进行搜索时,可以采取以下几种优化方法:

Query和Filter:在ES中,提供了Query和Filter两种搜索。QueryContext会对搜索进行相关性算分,而FilterContext不需要相关性算分,能够利用缓存来获得更好的性能。在使用bool查询时,filter和must_not属于FilterContext,不会对算分结果产生影响;must和should属于QueryContext,会对结果算分产生影响。

filesystemcache:ES的搜索引擎严重依赖于底层的filesystemcache。如果给filesystemcache更多的内存,尽量让内存可以容纳所有的indexsegmentfile索引数据文件,那么搜索的时候基本就是走内存的,性能会非常高。

数据预热:对于热点数据,最好做一个专门的缓存预热子系统,就是对于热数据,每隔一段时间就提前访问一下,让数据进入filesystemcache里面去,这样下次别人访问的时候性能会好一些。

document模型设计:在Java系统里写入es数据的时候,就先完成数据关联,再直接写入Es中,搜索的时候就不需要利用es的搜索语法去完成join来搜索了。此时一个重要的设计就是document的结构模型,写数据之前先设计好document的结构,Java里面做好数据处理后直接写入document,在es里面查询的时候直接就拿整个document出来,不用额外去做类似查询处理了。

3.排序优化

在对搜索结果进行排序时,可以根据需求进行排序、筛选等操作。例如,可以根据关键词分页搜索小说名称,排序优先响应和关键字前缀相同的小说名称。

以上就是ES搜索引擎的优化技巧的主要内容。

追问

延伸阅读

参考资料为您提炼了 5 个关键词,查找到 91745 篇相关资料。

ES搜索引擎的优化技巧
如何使用ES搜索引擎提高网站排名
ES搜索引擎的优缺点
ES搜索引擎的使用方法
ES搜索引擎的优化策略