sách gpt4 ai đã đi

Phần phụ trợ cho thao tác vuốt/ghép trong ứng dụng dựa trên thao tác vuốt hoạt động như thế nào?

In lại Tác giả: IT Prince Thời gian cập nhật: 2023-10-29 06:06:11 29 4
mua khóa gpt4 Nike

Tôi đang cố gắng phát triển một ứng dụng sao chép tính năng vuốt giống như Tinder. Ý tưởng của ứng dụng này rất giống với Tinder, cũng có tính năng vuốt sang phải và vuốt sang trái để ghép đôi.

Những gì tôi đã làm cho đến nay -Tôi đã tạo một bộ sưu tập thẻ quẹt trong MongoDB để lưu trữ thẻ quẹt của người dùng theo lược đồ sau -

swipedBy: {kiểu:Schema.ObjectId},
swipedUser: {kiểu:Schema.ObjectId},
trạng thái: {kiểu:Chuỗi, mặc định:"trái"}

Khi người dùng vuốt sang phải, tôi đang thực hiện lệnh gọi đến DB. Với mỗi lần vuốt, tôi cố gắng tìm hiểu xem người dùng đã được người dùng khác vuốt sang phải hay chưa trước khi xác nhận trùng khớp hoặc lưu thông tin đó vào cơ sở dữ liệu. Phải có cách nào đó tốt hơn.

Các giải pháp khả thi

Tôi đang tìm hiểu cách sử dụng cơ sở dữ liệu trong bộ nhớ như Redis để lưu trữ thông tin tương tự và tìm kiếm sự trùng khớp giữa những người dùng dựa trên thao tác vuốt. Nếu ai đó có thể giải thích cách Tinder thực hiện điều này thì sẽ giúp ích rất nhiều. Sơ đồ của tôi trong Redis như sau -

HSET cho mỗi người dùng với 
- userId là trường và
- trạng thái là trạng thái vuốt

Nhưng vấn đề với cách tiếp cận này là tôi sẽ không thể theo dõi liệu người dùng có vuốt qua một người cụ thể nào đó hay không, điều này là bắt buộc trong nguồn cấp dữ liệu. Một điều có thể làm để giải quyết vấn đề này là tôi có thể cập nhật bộ sưu tập và duy trì danh sách những người dùng đã được vuốt.

Nếu có cơ sở dữ liệu/cách nào khác có thể giúp tôi trong quá trình này, vui lòng gợi ý thêm.

biên tập:

Tôi không gặp phải bất kỳ trở ngại nào. Tôi chỉ muốn chắc chắn rằng mình đang làm đúng. Lặp lại danh sách để tìm hiểu xem người dùng có bị người khác vuốt sang phải hay không là giải pháp theo thời gian tuyến tính. Tôi đang tự hỏi liệu tôi có thể làm tốt hơn thông qua DB hay một cách tiếp cận nào khác mà tôi nên thử không.

1 Câu trả lời

Tôi không biết liệu điều này có thực sự giải quyết được vấn đề của bạn không, nhưng bạn có thể thử xem

  • Có một bộ lọc bloom riêng để kiểm tra xem nó có khớp không... có thể có kết quả dương tính giả, nhưng vì hầu hết sẽ là "chưa khớp" nên điều này sẽ tiết kiệm được rất nhiều truy vấn cơ sở dữ liệu
  • Nếu vẫn không khớp, bạn cần lưu trữ các mục dữ liệu đã vuốt lên, giữ nhiều mục như vậy trong bộ nhớ/redis trong một khoảng thời gian, sau đó chèn hàng loạt chúng vào cơ sở dữ liệu
  • Cập nhật bộ lọc bloom theo thời gian thực (lưu ý: có thể có sự không khớp tạm thời giữa bloom và cơ sở dữ liệu cho đến khi quá trình chèn hàng loạt hoàn tất.)

Phần phụ trợ cho thao tác vuốt/ghép trong ứng dụng dựa trên thao tác vuốt hoạt động như thế nào? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/48502658/

29 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com