[{"data":1,"prerenderedAt":421},["ShallowReactive",2],{"project-20247661":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":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":42,"post_text":45,"what":46,"said":67,"maker_in_thread":207,"shape":215,"grid":220,"attempts":369,"same_week":383,"maker_shows":337,"maker_hidden":413,"reader_version":414,"card":415},"20247661","Fist","Persistent Full Text Search and Indexing Server Written in C","title","Show HN: Fist – Persistent Full Text Search and Indexing Server Written in C","https:\u002F\u002Fgithub.com\u002Ff-prime\u002Ffist","github.com","max0563",1561170330,2019,124,62,369,2195,17,"notable","data","full text search server","cli",[24,25,26,27],"full text search","search server","inverted index","c","curious",-0.256,{"positive":31,"neutral":32,"mixed":33,"critical":34},2,11,0,7,20,{"idea":37,"design":38,"performance":39,"execution":40},{"positive":33,"critical":31},{"positive":33,"critical":33},{"positive":33,"critical":31},{"positive":31,"critical":41},3,[43,33,33,33,33,33,41,33,41,33,33,33,33,41,33,41,33,41,43,41,41,41,41,41,33,33,33,43,33,33,43,33,43,33,43,43,44,33,33,44],1,5,null,{"problem":47,"audience":45,"pricing":45,"motivation":53,"time_to_build":45,"stack":59,"openness":64,"stage":65,"team_size":66},{"value":48,"source":49,"evidence":50},"Full text search and indexing as a persistent server","maker",[51],{"id":52},"post",{"value":54,"source":49,"evidence":55},"Passion project",[56],{"id":57,"by":11,"text":58},"20249454","Hey all, Fist project creator here. Just wanted to thank everyone for the support and the comments. I’ve been working on this project for a few months now mainly as a passion…",[60],{"value":61,"source":49,"evidence":62},"C",[63],{"id":52},"open_source","beta","solo",{"praise":68,"objections":77,"requests":125,"questions":148,"alternatives":163},[69],{"value":70,"source":71,"evidence":72},"Interest in the project and offers of help from commenters","commenter",[73,74],{"id":57,"by":11,"text":58},{"id":75,"by":11,"text":76},"20249456","This is one hell of a comment. Thank you, sir.",[78,89,103,117],{"value":79,"source":71,"evidence":80},"Lacks stemming, stopping and relevance ranking expected of full text search",[81,85],{"id":82,"by":83,"text":84},"20248504","necovek","This seems to be a bit of a stretch in calling it \"full-text search\" engine: I only casually browsed the code from my phone so I might have missed it, but I don't see any support…",{"id":86,"by":87,"text":88},"20249919","michelpp","As others have pointed out there are some features considered essential in this space that would be good additions to the code: Stemming: (removing prefix\u002Fsuffixes walked,…",{"value":90,"source":71,"evidence":91},"Written in C, which is hard to make memory safe",[92,96,99],{"id":93,"by":94,"text":95},"20250154","sagichmal","It is irresponsible to the point of professional negligence to write new software in C.",{"id":97,"by":94,"text":98},"20250264","C is fast, small, and energy efficient. It is also impossible to write safe, exploit-free code in C by hand. The juice ain’t worth the squeeze.",{"id":100,"by":101,"text":102},"20250538","Too","Yep, not to bash the author but just to show how easy it is to write unsafe C. First function i started reading i already found a memory leak within a minute: indexer calls…",{"value":104,"source":71,"evidence":105},"Hash map lookup is not a real full text search approach; performance claims questioned",[106,109,113],{"id":107,"by":11,"text":108},"20249165","Project Dev here, if you'd be willing to help me with that part I would be greatful. When I talk about \"fast\" I mean all searches are O(1) due to the magic of hash maps.",{"id":110,"by":111,"text":112},"20249596","rurban","Fast FTS use reverse indices with trigrams, not primitive hash maps.",{"id":114,"by":115,"text":116},"20248094","singron","I find it hard to believe that this is \"fast\" as advertised when it isn't even compiled with optimizations:…",{"value":118,"source":71,"evidence":119},"Makefile hardcodes gcc and is not optimized",[120,124],{"id":121,"by":122,"text":123},"20248291","qalmakka","Using plain makefiles with \"gcc\" hardcoded in is atrocious, at least use $(CC). This also raises in me the suspicion that it hasn't been tested with no compiler other than GCC at…",{"id":114,"by":115,"text":116},[126,136,143],{"value":127,"source":71,"evidence":128},"Add HTTP interface",[129,133],{"id":130,"by":131,"text":132},"20248120","karterk","Looks like the project is still under development but I think that having a http based interface would make this much more accessible to be used easily from multiple languages.…",{"id":134,"by":11,"text":135},"20249184","Very good idea. Can't say I haven't also thought about this. I was also thinking about doing what Tile38 (https:\u002F\u002Fgithub.com\u002Ftidwall\u002Ftile38) does and using the REDIS protocol.…",{"value":137,"source":71,"evidence":138},"Add stemming, stopping and TF-IDF or BM25 ranking",[139,140],{"id":86,"by":87,"text":88},{"id":141,"by":11,"text":142},"20249220","Thanks for this! Right now it is not very complicated. An inverted index of the text that is sent over is created and added to the database. The DB is just a big hash map.…",{"value":144,"source":71,"evidence":145},"Use $(CC) in Makefile and enable optimizations",[146,147],{"id":121,"by":122,"text":123},{"id":114,"by":115,"text":116},[149,156],{"value":150,"source":71,"evidence":151},"Which algorithm is used for indexing and retrieval",[152],{"id":153,"by":154,"text":155},"20248606","lamchob","Very cool project. Which algorithm do you use for indexing\u002Fretrieval?",{"value":157,"source":71,"evidence":158},"Why use Fist over Sphinx or Xapian",[159],{"id":160,"by":161,"text":162},"20249312","lokl","I've been using http:\u002F\u002Fsphinxsearch.com for many years. Why should I consider Fist?",[164,171,181,186,193,200],{"value":165,"source":71,"evidence":166},"Lucene",[167],{"id":168,"by":169,"text":170},"20258973","aasasd","Pretty much everyone here knows Lucene as the primary text-search engine these days, but there's a competitor Sphinx Search which is written in C or C++ and is much lighter, to…",{"value":172,"source":71,"evidence":173},"Xapian",[174,178],{"id":175,"by":176,"text":177},"20248313","mitjam","For simple full text search I like to use SQLite fts3 and Xapian which is a feature rich and mature full text search engine. https:\u002F\u002Fxapian.org\u002F",{"id":179,"by":111,"text":180},"20249586","I rather keep using xapian. That's a proper indexing and search-engine (C++), much better than sphinx or Elasticsearch. Elasticsearch just has better client integration for…",{"value":182,"source":71,"evidence":183},"Sphinx Search",[184,185],{"id":160,"by":161,"text":162},{"id":168,"by":169,"text":170},{"value":187,"source":71,"evidence":188},"Tantivy",[189],{"id":190,"by":191,"text":192},"20248928","pas","https:\u002F\u002Fgithub.com\u002Ftantivy-search\u002Ftantivy - Lucene in Rust (I have no idea about API or feature parity)",{"value":194,"source":71,"evidence":195},"Groonga",[196],{"id":197,"by":198,"text":199},"20248413","actionowl","There is also Groonga: https:\u002F\u002Fgithub.com\u002Fgroonga\u002Fgroonga But this looks like it intends to be a lot simpler.",{"value":201,"source":71,"evidence":202},"Manticore Search",[203],{"id":204,"by":205,"text":206},"20249476","yorwba","There's also Manticore, an actively developed fork of the last open-source version of Sphinx: https:\u002F\u002Fmanticoresearch.com\u002Fabout\u002F",{"comments":208,"answered":31,"key":209},9,[210,211,214],{"id":57,"text":58},{"id":212,"text":213},"20250404","This is very helpful. I am working on all of this, but summarizing it all here helped me a lot. Thank you.",{"id":134,"text":135},{"commenters":216,"max_depth":217,"maker_replies":208,"first_comment_mins":218,"lifespan_hours":219},43,6,108,71,[221,223,227,230,233,236,238,241,244,246,248,249,250,252,255,257,260,262,265,266,269,274,277,278,281,284,286,289,290,293,296,299,304,305,306,308,309,310,312,313,315,317,320,323,324,327,329,330,334,336,339,342,343,344,346,348,351,355,357,360,363,366],[82,33,43,222,83,33],"project\u002Fcritical\u002Fidea",[224,33,33,225,226,33],"20249073","commenter\u002Fneutral\u002Fnone","taneq",[228,33,33,225,229,33],"20249146","ComodoHacker",[231,33,33,225,232,33],"20249241","danieldk",[234,33,33,225,235,33],"20250117","ianai",[237,33,33,225,229,33],"20250433",[239,33,33,240,235,33],"20250930","other\u002Fneutral\u002Fnone",[242,33,33,225,243,33],"20250038","itronitron",[57,43,33,245,11,43],"maker\u002Fpositive\u002Fnone",[86,43,41,247,87,33],"project\u002Fneutral\u002Fidea",[212,43,33,245,11,43],[168,43,33,240,169,33],[130,31,41,251,131,33],"project\u002Fneutral\u002Fdesign",[253,31,33,225,254,33],"20248330","madhadron",[256,31,33,225,131,33],"20248359",[258,31,33,225,259,33],"20248571","catmanjan",[134,31,33,261,11,43],"project\u002Fpositive\u002Fdesign",[263,31,33,225,264,33],"20250894","nwmcsween",[190,41,33,240,191,33],[267,41,33,225,268,33],"20261707","fulmicoton",[270,271,41,272,273,33],"20247985",4,"project\u002Fneutral\u002Fnone","busymom0",[275,271,33,240,276,33],"20248297","Lowkeyloki",[75,271,33,245,11,43],[279,271,41,272,280,33],"20248386","eddieh",[282,271,33,240,283,33],"20250413","vram22",[285,271,33,245,11,43],"20249174",[287,271,41,272,288,33],"20270208","quickthrower2",[175,44,43,222,176,33],[291,217,41,247,292,33],"20248226","latenightcoding",[294,34,41,272,295,33],"20249674","simonhamp",[297,34,33,240,298,33],"20249984","dewey",[300,301,41,302,303,33],"20250372",8,"project\u002Fneutral\u002Fperformance","levidurfee",[153,208,41,247,154,33],[141,208,33,302,11,43],[197,307,41,247,198,33],10,[160,32,41,247,161,33],[204,32,33,240,205,33],[311,32,33,225,161,33],"20250009",[179,32,33,240,111,33],[314,32,33,225,161,33],"20250044",[316,32,33,225,111,33],"20258079",[93,318,43,319,94,33],12,"project\u002Fcritical\u002Fexecution",[321,318,33,225,322,33],"20250223","drocer88",[97,318,33,225,94,33],[325,318,33,225,326,33],"20250281","ph33t",[328,318,33,225,94,33],"20250288",[100,318,43,319,101,33],[331,332,33,240,333,33],"20248491",13,"VvR-Ox",[335,332,33,245,11,43],"20249145",[114,337,43,338,115,33],14,"project\u002Fcritical\u002Fperformance",[340,337,33,225,341,33],"20248868","foo101",[107,337,33,302,11,43],[110,337,43,338,111,33],[345,337,33,225,283,33],"20250458",[121,347,43,319,122,33],15,[349,347,33,225,350,33],"20248358","OnlyOneCannolo",[352,347,44,353,354,33],"20248649","project\u002Fpositive\u002Fexecution","saagarjha",[356,347,33,225,341,33],"20248864",[358,347,33,225,359,33],"20249082","kbumsik",[361,347,33,362,11,43],"20249154","maker\u002Fneutral\u002Fnone",[364,347,44,353,365,33],"20249502","asymptotically2",[367,347,33,225,368,33],"20249917","CondensedBrain",[370,373,376,379,382],{"id":371,"t":372,"points":43,"comments":33},"20039463",1559134061,{"id":374,"t":375,"points":18,"comments":33},"20047904",1559184283,{"id":377,"t":378,"points":43,"comments":33},"20061884",1559317208,{"id":380,"t":381,"points":271,"comments":43},"20078976",1559516641,{"id":4,"t":12,"points":14,"comments":15},[384,389,394,399,404,408],{"id":385,"name":386,"points":387,"category":388},"20252097","noageismintech.com",523,"web_saas",{"id":390,"name":391,"points":392,"category":393},"20245913","Catj",388,"dev_tools",{"id":395,"name":396,"points":397,"category":398},"20233376","collectoral.com",143,"productivity",{"id":400,"name":401,"points":402,"category":403},"20231328","The Star Maps",138,"creative",{"id":405,"name":406,"points":407,"category":403},"20267629","Ludigraphix",106,{"id":409,"name":410,"points":411,"category":412},"20251015","Gravitle",95,"languages",false,"v2",{"id":416,"name":5,"line":6,"ai":413,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":417,"top":18,"kw":418,"maker":11,"domain":10,"tier":19,"attempts":44,"strip":419,"url":9,"mix":420,"praise":70,"objection":79,"sub":21},20247661,-0.26,[24,25,26,27],"1000003030000303031333330001001010115005",[31,32,33,34],1794036578560]