1、如何监控 Elasticsearch 集群健康状态并实现邮件自动预警?
https://mp.weixin.qq.com/s/6K2PHQUdKXt4pngSjWmQRw
2、快速上手 INFINI Console 的 TopN 指标功能
https://infinilabs.cn/blog/202 ... rics/
3、介绍 Easysearch 的 Rollup
https://infinilabs.cn/blog/202 ... llup/
4、极致 ElasticSearch 调优,让你的ES 狂飙100倍!
https://mp.weixin.qq.com/s/7dYZp-NwNQMLRrdOjcNj5w
5、【Elasticsearch】批量操作:优化性能
https://blog.csdn.net/lilinhai ... 06354
编辑:Muse
更多资讯:http://news.searchkit.cn
https://mp.weixin.qq.com/s/6K2PHQUdKXt4pngSjWmQRw
2、快速上手 INFINI Console 的 TopN 指标功能
https://infinilabs.cn/blog/202 ... rics/
3、介绍 Easysearch 的 Rollup
https://infinilabs.cn/blog/202 ... llup/
4、极致 ElasticSearch 调优,让你的ES 狂飙100倍!
https://mp.weixin.qq.com/s/7dYZp-NwNQMLRrdOjcNj5w
5、【Elasticsearch】批量操作:优化性能
https://blog.csdn.net/lilinhai ... 06354
编辑:Muse
更多资讯:http://news.searchkit.cn
[尊重社区原创,转载请保留或注明出处]
本文地址:http://elasticsearch.cn/article/15353
本文地址:http://elasticsearch.cn/article/15353
1 个评论
"极致 ElasticSearch 调优,让你的ES 狂飙100倍!"里面的 "6.1 调整filter过滤顺序, 过滤优先原则",是对的吗,我对此表示疑问?
我摘抄出来,如下:
未优化的查询
假设我们有一个商品索引,包含商品的名称(name)、价格(price)和分类(category)字段。
一个未优化的查询可能如下:
GET /products/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "apple"
}
}
],
"filter": [
{
"term": {
"category": "fruit"
}
},
{
"range": {
"price": {
"lte": 100
}
}
}
]
}
}
}
在这个查询中,我们首先使用match查询来搜索名称中包含“apple”的商品,然后使用filter来过滤属于“fruit”分类且价格不超过100的商品。
优化后的查询
如何优化这个查询?
可以将filter条件移到must子句中,因为filter可以被缓存,这样可以减少需要检查的文档数量,从而提高查询效率:
GET /products/_search
{
"query": {
"bool": {
"must": [
{
"bool": {
"filter": [
{
"term": {
"category": "fruit"
}
},
{
"range": {
"price": {
"lte": 100
}
}
}
]
}
},
{
"match": {
"name": "apple"
}
}
]
}
}
}
在这个优化后的查询中,我们首先使用bool查询的filter子句来过滤出属于“fruit”分类且价格不超过100的商品,然后再使用match查询来搜索名称中包含“apple”的商品。
这样,match查询只需要在已经过滤过的文档集上运行,从而提高了查询效率。
通过这种方式,我们可以确保使用过滤器来减少搜索空间,然后再应用全文查询,这样可以显著提高查询性能,尤其是在处理大量数据时。
我摘抄出来,如下:
未优化的查询
假设我们有一个商品索引,包含商品的名称(name)、价格(price)和分类(category)字段。
一个未优化的查询可能如下:
GET /products/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "apple"
}
}
],
"filter": [
{
"term": {
"category": "fruit"
}
},
{
"range": {
"price": {
"lte": 100
}
}
}
]
}
}
}
在这个查询中,我们首先使用match查询来搜索名称中包含“apple”的商品,然后使用filter来过滤属于“fruit”分类且价格不超过100的商品。
优化后的查询
如何优化这个查询?
可以将filter条件移到must子句中,因为filter可以被缓存,这样可以减少需要检查的文档数量,从而提高查询效率:
GET /products/_search
{
"query": {
"bool": {
"must": [
{
"bool": {
"filter": [
{
"term": {
"category": "fruit"
}
},
{
"range": {
"price": {
"lte": 100
}
}
}
]
}
},
{
"match": {
"name": "apple"
}
}
]
}
}
}
在这个优化后的查询中,我们首先使用bool查询的filter子句来过滤出属于“fruit”分类且价格不超过100的商品,然后再使用match查询来搜索名称中包含“apple”的商品。
这样,match查询只需要在已经过滤过的文档集上运行,从而提高了查询效率。
通过这种方式,我们可以确保使用过滤器来减少搜索空间,然后再应用全文查询,这样可以显著提高查询性能,尤其是在处理大量数据时。