Elasticsearch 为每条记录匹配一次查询中的所有其他记录?
Elasticsearch for each record to match all other records in one query?
我正在使用 elasticsearch 保存所有活跃用户。
例如,如果我有 200 个活跃用户,对于每个用户,我想查找 300 公里以内的所有用户。
为了找到每个用户的匹配项,我需要 运行 以下函数 200 次。
findOneMatch(UserID) {
/*
elastic search query here to find any user within 300km
*/
}
是否可以进行一次查询并找到每个用户的所有匹配项?
我想要的结果是:
User 1: (matches: User 5, User 15, User 23)
User 2: (matches: User 25, User 115)
User 3: (matches: User 33, User 44, User 55)
User 4: (matches: User 44, User 66, User 115)
...
不是在寻找具体查询,而是在寻找方向
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html
您可以利用多重搜索 API。它的作用是,您可以将所有用户的搜索查询合并为一个,然后立即触发它们,您将收到一个批量响应,其中包含多重搜索中每个查询的搜索结果。
小心避免服务器因批处理中的查询数量而过载。
我正在使用 elasticsearch 保存所有活跃用户。
例如,如果我有 200 个活跃用户,对于每个用户,我想查找 300 公里以内的所有用户。
为了找到每个用户的匹配项,我需要 运行 以下函数 200 次。
findOneMatch(UserID) {
/*
elastic search query here to find any user within 300km
*/
}
是否可以进行一次查询并找到每个用户的所有匹配项?
我想要的结果是:
User 1: (matches: User 5, User 15, User 23)
User 2: (matches: User 25, User 115)
User 3: (matches: User 33, User 44, User 55)
User 4: (matches: User 44, User 66, User 115)
...
不是在寻找具体查询,而是在寻找方向
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html
您可以利用多重搜索 API。它的作用是,您可以将所有用户的搜索查询合并为一个,然后立即触发它们,您将收到一个批量响应,其中包含多重搜索中每个查询的搜索结果。
小心避免服务器因批处理中的查询数量而过载。