小编Mar*_*áva的帖子

如何从弹性搜索查询中排除大量ID

我正在开发一个类似于Tinder的应用程序.在ElasticSearch中,我有大约五十万用户及其位置的集合.每当用户打开应用程序以搜索附近的用户时,我就会对该集合运行弹性搜索查询.查询相当复杂,它不仅考虑了位置,还考虑了用户的活跃程度或他拥有的照片数量.

我所挣扎的是如何排除当前用户已经从查询中刷过的那些用户.实现这一点的一种天真的方法可能是维护嵌套的用户ID数组,作为索引中每个用户文档的一部分,并根据它进行排除.但是,由于每个用户都进行了数十万次扫描,因此阵列可能会变得非常大,因此它不是一个可扩展的解决方案.

有没有办法从Elastic Search查询中排除大量实体,这些实体基于其不会影响性能的ID?

elasticsearch

12
推荐指数
2
解决办法
6407
查看次数

通过REST API进行Firebase交易

我发现交易(https://www.firebase.com/docs/transactions.html)是处理并发的一种很酷的方式,但似乎它们只能从客户端完成.

我们使用Firebase的方式主要是从我们的服务器写入数据并在客户端上观察它们.有没有办法在通过REST API编写数据时实现乐观并发模型?

谢谢!

rest firebase

8
推荐指数
2
解决办法
2849
查看次数

使用 @aws-cdk/aws-apigatewayv2 添加对 AWS websocket API 的集成响应

有没有办法使用 AWS CDK 和 aws-apigatewayv2 包向 AWS WebSocket API 添加集成响应?这个答案展示了使用 CloudFormation 实现这一目标的好方法。但我一直没能将它翻译成AWS CDK。谢谢!

编辑:

抱歉,我应该澄清我现在如何尝试添加集成响应:

  const webSocketApi = new WebSocketApi(this, 'Api', {
    defaultRouteOptions: {
      integration: new LambdaWebSocketIntegration({ handler: lambdaFn }),
    },
  })
  new CfnIntegrationResponse(this, 'response', {
    apiId: webSocketApi.apiId,
    integrationId: /* ? */,
    integrationResponseKey: '$default',
  })
  const stage = new WebSocketStage(this, 'Stage', {
    webSocketApi,
    stageName: 'dev',
    autoDeploy: true,
  })
Run Code Online (Sandbox Code Playgroud)

我可以使用 CfnIntegrationResponse 添加集成响应,但我没有办法访问 LambdaWebSocketIntegration 的集成 ID。

amazon-web-services aws-cloudformation aws-api-gateway aws-cdk

8
推荐指数
1
解决办法
956
查看次数