[{"data":1,"prerenderedAt":349},["ShallowReactive",2],{"project-37499375":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":45,"post_text":47,"what":48,"said":76,"maker_in_thread":195,"shape":206,"grid":210,"attempts":312,"same_week":313,"maker_shows":34,"maker_hidden":341,"reader_version":342,"card":343},"37499375","Lantern","a PostgreSQL vector database for building AI applications","title","Show HN: Lantern – a PostgreSQL vector database for building AI applications","https:\u002F\u002Fdocs.lantern.dev\u002Fblog\u002F2023\u002F09\u002F13\u002Fhello-world","docs.lantern.dev","ngalstyan4",1694626918,2023,196,43,284,3109,10,"notable","data","vector database","library",[24,25,26,27,28],"postgresql","vector search","hnsw","pgvector","embeddings","curious",0.036,{"positive":32,"neutral":33,"mixed":34,"critical":35},3,22,1,2,28,{"performance":38,"idea":40,"docs":41,"design":42,"execution":43,"pricing":44},{"positive":34,"critical":39},0,{"positive":39,"critical":39},{"positive":39,"critical":39},{"positive":39,"critical":34},{"positive":39,"critical":39},{"positive":39,"critical":39},[34,39,39,39,39,39,32,39,32,32,46,46,32,32,39,34,39,46,32,32,32,32,32,32,32,32,32,39,32,32,32,32,32,39,32,32,32,39,39,39],5,"We are excited to share Lantern! Lantern is a PostgreSQL vector database extension for building AI applications. \nInstall and use our extension here: https:\u002F\u002Fgithub.com\u002Flanterndata\u002Flantern\n\nWe have the most complete feature set of all the PostgreSQL vector database extensions. Our database is built on top of usearch — a state of the art implementation of HNSW, the most scalable and performant algorithm for handling vector search.\n\nThere’s three key metrics we track. CREATE INDEX time, SELECT throughput, and SELECT latency. We match or outperform pgvector and pg_embedding (Neon) on all of these",{"problem":49,"audience":55,"pricing":59,"motivation":60,"time_to_build":59,"stack":64,"openness":73,"stage":74,"team_size":75},{"value":50,"source":51,"evidence":52},"Vector search and embeddings inside PostgreSQL for AI applications","maker",[53],{"id":54},"post",{"value":56,"source":51,"evidence":57},"Developers and companies already using PostgreSQL",[58],{"id":54},null,{"value":61,"source":51,"evidence":62},"Bring enterprise vector search to PostgreSQL, since no enterprise option is built on it",[63],{"id":54},[65,69],{"value":66,"source":51,"evidence":67},"PostgreSQL",[68],{"id":54},{"value":70,"source":51,"evidence":71},"usearch (HNSW)",[72],{"id":54},"open_source","launched","unknown",{"praise":77,"objections":90,"requests":124,"questions":147,"alternatives":176},[78],{"value":79,"source":80,"evidence":81},"Performance results and benchmarking CI praised","commenter",[82,86],{"id":83,"by":84,"text":85},"37500875","ashvardanian","Epic result, and thank you for mentioning USearch! Would be happy to further optimize it for your needs! I also love your specialized CI! Pgvector probably doesn’t report…",{"id":87,"by":88,"text":89},"37501470","simonw","That's really useful, thanks.",[91,106,117],{"value":92,"source":80,"evidence":93},"Free AirPods Pro offer to switch from pgvector seen as sketchy",[94,98,102],{"id":95,"by":96,"text":97},"37502762","bryan0","> Switch from pgvector, get FREE AirPods Pro. > Book some time here, and we will help switch you over for FREE and get you a pair of FREE AirPods Pro This just comes off as…",{"id":99,"by":100,"text":101},"37503719","gregwebs","Although it doesn’t meet the definition of bribery it’s a similar concept. It’s trying to influence someone’s decision by personal gain rather than just what’s best for the…",{"id":103,"by":104,"text":105},"37504656","rawrawrawrr","This is fine, its a standard enterprise marketing technique. Watch a webinar, get a gift card.",{"value":107,"source":80,"evidence":108},"Lacks VACUUM cleanup and IVFFlat support",[109,113],{"id":110,"by":111,"text":112},"37501161","carlossouza","I'm using pgvector in production, mainly in a table with 500k-1M rows. My main use case is to return search results with pagination: page 1 from 1-50, page 2 from 51-100, page 3…",{"id":114,"by":115,"text":116},"37501413","mattashii","How do you do cleanup of the index during VACUUM? And, do you have recall-vs-qps graphs like those on https:\u002F\u002Fann-benchmarks.com\u002F ? Those are generally more apples-to-apples, as…",{"value":118,"source":80,"evidence":119},"Embedding functions in the extension raise design concerns",[120],{"id":121,"by":122,"text":123},"37500882","saurik","When you say \"produced locally\", do you mean on the client? If so, does this mean you require me to use some alternate PostgreSQL driver locally, parsing the SQL to add your one…",[125,129,139],{"value":126,"source":80,"evidence":127},"Support for IVFFlat-style pagination queries",[128],{"id":110,"by":111,"text":112},{"value":130,"source":80,"evidence":131},"Sparse vector support for hybrid search",[132,136],{"id":133,"by":134,"text":135},"37501690","dalberto","Any plans to support sparse vectors?",{"id":137,"by":134,"text":138},"37502538","For hybrid search",{"value":140,"source":80,"evidence":141},"Recall-vs-QPS benchmarks on larger datasets",[142,143],{"id":114,"by":115,"text":116},{"id":144,"by":145,"text":146},"37504382","loxias","Curious about how it scales. Plenty of solutions look good with small amounts of data, but completely fall apart past a point. Would be interesting to see the latency numbers for…",[148,155,166],{"value":149,"source":80,"evidence":150},"How does it differ from pgvector and hosted Postgres with pgvector",[151],{"id":152,"by":153,"text":154},"37500076","fakedang","This might be a noob question but what does Lantern have that a normal Postgres dB with pgvector does not? I think Supabase already has a Postgres as a service product with the…",{"value":156,"source":80,"evidence":157},"Can it run on Supabase",[158,162],{"id":159,"by":160,"text":161},"37500935","justanotheratom","can I use this in Supabase?",{"id":163,"by":164,"text":165},"37501829","radus","Not a Supabase user, but to my knowledge -- no. Except for a set of blessed extentions, Supabase only supports extensions that are written in \"trusted languages\" (ie. supported…",{"value":167,"source":80,"evidence":168},"How index updates and inserts perform",[169,172],{"id":170,"by":88,"text":171},"37500251","\"There's three key metrics we track. CREATE INDEX time, SELECT throughput, and SELECT latency.\" There's a fourth metric that I'm really interested in: assuming it's possible, how…",{"id":173,"by":174,"text":175},"37501247","diqi","> There's a fourth metric that I'm really interested in: assuming it's possible, how long does it take to update the index with just one or two updated or inserted vectors?…",[177,184,191],{"value":27,"source":80,"evidence":178},[179,180],{"id":95,"by":96,"text":97},{"id":181,"by":182,"text":183},"37500768","raoufchebri","How do you handle conflict with pgvector's hnsw if you want to install both extensions ? CREATE INDEX semantic_image ON image_table USING hnsw (v dist_cos_ops) WITH (M=5, ef=30,…",{"value":185,"source":80,"evidence":186},"Qdrant",[187],{"id":188,"by":189,"text":190},"37501546","swalsh","I like how easy postgresql vector is to use, but scaling up seems to get pretty expensive when comapred to something like qdrant.",{"value":192,"source":51,"evidence":193},"pg_embedding (Neon)",[194],{"id":54},{"comments":46,"answered":46,"key":196},[197,200,203],{"id":198,"text":199},"37501677","This sounds like a very useful feature, and we will prioritize this. You’re correct that IVFFLAT would be faster for your use case. However, IVFFLAT’s shortcoming is bad recall,…",{"id":201,"text":202},"37500671","Pgvector builds a vector index. Our extension, similarly, builds an index but also extends SQL in more ways. For example, - Generating embeddings to augment plain relational data…",{"id":204,"text":205},"37501419",">When you say \"produced locally\", do you mean on the client? Sorry for the confusion. By “produced locally” I meant “produced on your DB server” as opposed to being an API call…",{"commenters":36,"max_depth":207,"maker_replies":46,"first_comment_mins":208,"lifespan_hours":209},4,59,177,[211,213,215,218,221,222,225,227,229,230,231,233,236,238,241,245,246,248,250,252,254,258,260,263,265,269,271,272,274,278,280,282,284,285,288,290,293,295,297,298,301,306,309],[95,39,34,212,96,39],"maker\u002Fcritical\u002Fnone",[99,39,39,214,100,39],"commenter\u002Fneutral\u002Fnone",[216,39,39,214,217,39],"37506289","swyx",[219,39,39,214,220,39],"37510603","sangnoir",[103,39,39,214,104,39],[223,39,39,214,224,39],"37505187","siva7",[110,34,32,226,111,39],"project\u002Fneutral\u002Fperformance",[198,34,39,228,11,34],"maker\u002Fneutral\u002Fnone",[170,35,32,226,88,39],[173,35,32,226,174,39],[87,35,46,232,88,39],"project\u002Fpositive\u002Fnone",[234,32,46,232,235,39],"37502041","ezra-varady",[152,207,32,237,153,39],"project\u002Fneutral\u002Fidea",[239,207,32,240,88,39],"37500300","project\u002Fneutral\u002Fdocs",[242,207,32,243,244,39],"37501509","maker\u002Fneutral\u002Fperformance","jeungsp",[201,207,39,237,11,34],[121,207,34,247,122,39],"project\u002Fcritical\u002Fdesign",[204,207,39,249,11,34],"project\u002Fneutral\u002Fdesign",[83,46,46,251,84,39],"project\u002Fpositive\u002Fperformance",[253,46,32,228,174,39],"37501225",[255,256,32,240,257,39],"37500311",6,"howon92",[259,256,32,228,244,39],"37501697",[114,261,32,262,115,39],7,"project\u002Fneutral\u002Fexecution",[264,261,32,262,174,39],"37501565",[266,267,32,228,268,39],"37592608",8,"skeptrune",[144,270,32,226,145,39],9,[181,18,32,262,182,39],[273,18,39,262,11,34],"37500863",[275,276,32,226,277,39],"37503974",11,"jw903",[279,276,39,226,11,34],"37504627",[133,281,32,237,134,39],12,[283,281,32,237,244,39],"37501771",[137,281,32,237,134,39],[188,286,32,287,189,39],13,"project\u002Fmixed\u002Fpricing",[289,286,32,226,244,39],"37501828",[291,286,39,292,189,39],"37522903","commenter\u002Fneutral\u002Fpricing",[159,294,32,262,160,39],14,[296,294,32,228,174,39],"37501749",[163,294,32,262,164,39],[299,294,39,300,174,39],"37501856","commenter\u002Fneutral\u002Fexecution",[302,303,39,304,305,39],"37500742",15,"other\u002Fneutral\u002Fnone","consoomer",[307,303,39,304,308,39],"37500792","codetrotter",[310,303,39,304,311,39],"37500871","_boffin_",[],[314,319,324,329,333,337],{"id":315,"name":316,"points":317,"category":318},"37427127","HackYourNews",335,"ai",{"id":320,"name":321,"points":322,"category":323},"37470611","splat",309,"languages",{"id":325,"name":326,"points":327,"category":328},"37444683","Ghidra Plays Mario",207,"dev_tools",{"id":330,"name":331,"points":332,"category":323},"37438028","cursed-typescript",186,{"id":334,"name":335,"points":336,"category":318},"37433218","Rivet",176,{"id":338,"name":339,"points":340,"category":323},"37448914","view.py",173,false,"v2",{"id":344,"name":5,"line":6,"ai":341,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":345,"top":18,"kw":346,"maker":11,"domain":10,"tier":19,"attempts":39,"strip":347,"url":9,"mix":348,"praise":79,"objection":92,"sub":21},37499375,0.04,[24,25,26,27,28],"1000003033553301053333333330333330333000",[32,33,34,35],1794036641679]