我有一个生成 Elasticsearch 查询的通用代码。
在 Elasticsearch 查询中有无用的部分会导致性能下降:
在此示例中,空"bool" : {}
部分
{
"post_filter": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"term": {
"a": "a"
}
},
{
"term": {
"b": "b"
}
}
]
}
},
{
"bool": {}
}
]
}
}
}
因为它可以在没有must
且只有一个should
"post_filter": {
"bool": {
"should": {
…
}
}
}
或另一个例子:
"post_filter": {
"term": {
"a": "a"
}
}
与
的性能相当"post_filter": {
"bool": {
"must": {
"term": {
"a": "a"
}
}
}
}
我想是的,但是有人可以确认吗?
答案 0 :(得分:0)
测量ES使用两个版本的代码返回结果所花费的时间,并自行决定。根据我的经验,这根本不重要。只要你的ES查询生成代码干净简单,就要坚持下去。