我在elasticsearch中有一个复杂的查询.它很慢.我想优化它.但我不知道如何工作.如何解释查询,就像Sql解释一样.
我看到elastichsearch _valite/query?explain.它可以解释得分.但我需要查看详细的执行计划.
{
"post_filter": {
"bool": {
"should": [
{
"bool": {
"must": [
{
"term": {
"base.sysCode": "2801"
}
},
{
"term": {
"base.status": [
12,
0
]
}
}
]
}
}
]
}
},
"fields": [
"base.sysCode",
"base.orderNo"
]
}
Run Code Online (Sandbox Code Playgroud)
结果
{
"valid": true,
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"explanations": [
{
"index": "odi_bus_betad_2013",
"valid": true,
"explanation": "ConstantScore(*:*)"
}
]
}
Run Code Online (Sandbox Code Playgroud)
Ben*_*enG 26
解释API
计算查询和特定文档的分数说明.无论文档是否与特定查询匹配,这都可以提供有用的反馈.
加 "explain": true
GET /_search
{
"explain": true,
"query" : {
"term" : { "user" : "kimchy" }
}
}
Run Code Online (Sandbox Code Playgroud)
Profile API
提供有关搜索请求中各个组件的执行的详细计时信息.它使用户能够深入了解如何在较低级别执行搜索请求,以便用户可以理解为什么某些请求很慢,并采取措施来改进它们.
加 "profile": true
GET /_search
{
"profile": true,
"query" : {
"match" : { "user" : "kimchy" }
}
}
Run Code Online (Sandbox Code Playgroud)
如果您运行的是最新版本,请将 profile 关键字粘贴到您的查询中:
GET binary/_search
{
"profile": true,
"query": {
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果你有 X-Pack,你可以使用基于 GUI 的分析器来查看它的缓慢之处。遗憾的是在开源版本中不可用,但它只是上述输出的更漂亮版本 - https://www.elastic.co/guide/en/kibana/5.6/xpack-profiler.html
您可能可以进行 30 天的试用,或者如果幸运的话,您可能已经拥有 X-Pack 许可证。
| 归档时间: |
|
| 查看次数: |
12354 次 |
| 最近记录: |