我试图按帖子数量汇总热门用户列表。查询:
"top_users_posts" : {
"terms" : {
"size": 30,
"field" : "user.username",
"order": { "_count": "desc" }
}
}
这导致一些非常奇怪的数据。用户名长度必须至少为3个字符,因此某人无法拥有用户名" 1"或" 2"。
"buckets": [
{
"key": "(real user)",
"doc_count": 801
},
{
"key": "1",
"doc_count": 712
},
{
"key": "(real user)",
"doc_count": 614
},
{
"key": "2",
"doc_count": 587
}
]
如果我查询
{
"term": {
"user.username": 1
}
}
我发现它与1.someuser
,1.anotheruser
或1.someoneelse23
等用户名相匹配。这些在我的应用程序中是完全有效的用户名,但是Elasticsearch将他们的帖子聚合在一起,而不是单独处理它们,因为它们在句点之前具有相同的值。
如何更改它以使其完全匹配(或逃避期间)。