选择布尔查询elasticsearch的不同值

选择布尔查询elasticsearch的不同值,第1张

选择布尔查询elasticsearch的不同值

您将需要使用术语汇总来获取所有唯一身份用户,然后使用热门匹配来针对每个用户仅获取一个结果。这就是它的样子。

{  "query": {    "bool": {      "should": [        {          "match_phrase": { "gtitle": {   "query": "voice",   "boost": 1 }          }        },        {          "match_phrase": { "gdesc": {   "query": "voice",   "boost": 1 }          }        },        {          "match": { "city": {   "query": "voice",   "boost": 2 }          }        },        {          "match": { "gtags": {   "query": "voice",   "boost": 1 }          }        }      ],      "must_not": [        {          "term": { "profilepicture": ""          }        }      ],      "minimum_should_match": 1    }  },  "aggs": {    "unique_user": {      "terms": {        "field": "userid",        "size": 100      },      "aggs": {        "only_one_post": {          "top_hits": { "size": 1          }        }      }    }  },  "size": 0}

在这里

size
,用户聚合的内部值为100,如果您有更多的唯一用户(默认值为10),则可以增加该值,最外面的
size
也为零,以仅获得聚合结果。要记住的一件事是您的用户ID必须是唯一的,即
ABCabc 将被视为不同的用户,您可能必须设置用户ID
not_analyzed
才能确保这一点。关于更多。

希望这可以帮助!!



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5015877.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存