我想根据结果主查询的字段搜索文档
例如,假设我的doc只包含两个字段
用户ID
地质点
我需要一个查询,返回给我一个特定的用户ID和他的地理点周围的用户的文档我没有找到一个方法,使在一个查询,现在我做了2个查询(一个检索一个用户的文档和一个检索他的地理点周围的用户)
谢谢
更新1
第一个查询:
GET users\_search
{
"query": {
"term": {
"userId": "10250000075114"
}
}
}
然后我对周围的用户进行第二次查询
GET users\_search
{
"query": {
"function_score": {
"query": {
"bool": {
"must_not": {
"term": {
"userId": "10250000075114"
}
}
}
},
"functions": [
{
"gauss": {
"rank": {
"origin": "0.8",
"offset": "0.05",
"scale": "0.1"
}
}
},
{
"gauss": {
"startPoint": {
"origin": "32.547484,34.95457",
"offset": "5km",
"scale": "10km"
}
}
},
{
"script_score": {
"script": "_score"
}
}
]
}
}
}
其中,第二个查询中的startpoint是第一个查询的startpoint结果
1条答案
按热度按时间roejwanj1#
您要查找的是子查询(在rdbms中存在),但在elasticsearch中不存在子查询。
但是你可以在你的用户ID上使用过滤器,然后只找到那些用户周围的用户,更多信息和例子请参考布尔查询。