ElasticSearch使用规范-查询规范

网友投稿 736 2022-05-29

查询规范建议

1)定义好mappings和settings,不同的数据类型查询效率不一样,建议只需做精确查询以及范围查询的字段设置为keyword类型。对于要进行全文检索的字段设置合理的分词器。

2)对于只需要查询数据结果而不需要结果的相关度计算的情况,使用filter query能大幅提升你的查询效率。例如过滤某车牌和号码。

3)避免一次性取出大量的数量:elasticsearch被设计为一个搜索引擎,这使得它非常擅长获取与查询匹配的最优文档,但是不适合用来检索与特定查询匹配的所有文档。 Elasticsearch为了避免深分页,不允许使用分页(from&size)查询10000条以后的数据,如果需要这样做,请确保使用Scroll API。

4)尽量细化查询条件,查询的条件越细,查询效率越高。

5)选择合适的查询类型,比如term查询效率相对会高一些。

6)路由

Elasticsearch写入文档时,文档会通过一个公式路由到一个索引中的一个分片上。默认公式如下:

shard_num = hash(_routing) % num_primary_shards

_routing字段的取值,默认是_id字段,可以根据业务场景设置经常查询的字段作为路由字段。例如可以考虑将用户id、地区作为路由字段,查询时可以过滤不必要的分片,加快查询速度。

7)避免使用wildcard模糊匹配查询

ElasticSearch使用规范-查询规范

Elasticsearch默认支持通过*?正则表达式来做模糊匹配,数据量级别达到TB+甚至更高之后,模糊匹配查询通常会耗时比较长,甚至可能导致内存溢出,卡死乃至崩溃宕机的情况。所以数据量大的情况下,不要使用模糊匹配查询。

EI企业智能 Elasticsearch FusionInsight

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:分享文案、表白网页、电影 祝各位都能追到女神!
下一篇:Vim学习(一) Vimtutor
相关文章