Jag använder ett liknande tillvägagångssätt med sorterade uppsättningar för att implementera fulltextindexering. Det övergripande tillvägagångssättet är bra, även om det finns ett par ganska enkla förbättringar du kan göra.
- Istället för att använda slumpmässigt genererade nycklar kan du använda frågan (eller en kort form av denna) som nyckel. Det låter dig återanvända de uppsättningar som redan har beräknats, vilket kan förbättra prestandan avsevärt om du har frågor över två stora uppsättningar som vanligtvis kombineras på liknande sätt.
- Hantera titel som en komplett sträng kommer att resultera i ett mycket stort antal enstaka medlemsuppsättningar. Det kan vara bättre att indexera enskilda ord i titeln och filtrera de slutliga resultaten för en exakt matchning om du verkligen behöver det.