p3x-redis-ui-server
Version:
🏍️ P3X Redis UI server — Socket.IO backend for the dual Angular + React frontend with AI queries, 54 languages, and auto data decompression
2 lines (1 loc) • 715 B
JavaScript
export default async e=>{const{socket:r,payload:t}=e;try{const o=r.p3xrs.ioredis,{index:s,query:a,vectorField:n,vectorValues:c,count:i=10,offset:l=0,limit:u=20}=t;if(!(s&&a&&n&&c))return void r.emit(e.responseEvent,{status:"error",error:"Index, query, vectorField, and vectorValues are required"});const d=[s,a,"LIMIT",l,u,"VECTOR",n,i,Buffer.from(new Float32Array(c.map(Number)).buffer)],f=await o.call("FT.HYBRID",...d),y=f[0],m=[];for(let e=1;e<f.length;e+=2){const r=f[e],t=f[e+1],o={_key:r};if(Array.isArray(t))for(let e=0;e<t.length;e+=2)o[t[e]]=t[e+1];m.push(o)}r.emit(e.responseEvent,{status:"ok",data:{total:y,docs:m}})}catch(t){console.error(t),r.emit(e.responseEvent,{status:"error",error:t.message})}};