3 ms·
Hey amix, thanks for the comments! I certainly agree that a purpose-built solution could be better if you needed the features you mention, but that was not our
by adamcharnock 16y ago
Hey amix, thanks for the comments!
I certainly agree that a purpose-built solution could be better if you needed the features you mention, but that was not our use-case. This provided an elegant solution which would avoid us having to duplicate all our item metadata. Also, given our schedule it seemed clear that Redis VM would be available by the time we needed it.
It is true that Redis is not optimised specifically for full-text search. However, it is optimised for serving data structures very quickly which is exactly what we needed.
- pbrumm 16y agoI have been looking into this area myself recently and this is great. My dataset is in the 300 - 500 item range and needing to include a full search engine seemed like overkill especially when I am already using redis. I will probably go with sphinx for it's other capabilities but this sounds better than the other redis search implementations that are out there.
- amix 16y agoIn Sphinx you don't store meta data - you just store an inverted index going from words to ids. And I bet that setting up Sphinx would have been much easier than rolling out your own solution ;-) Btw. like I mentioned Sphinx does support fuzzy search (and boolean search), so I don't really know what you win by rolling your own solution in Redis, other than worse scalability and a crippled full-text search.
- adamcharnock 16y agoSphinx is an excellent option for full-text search. The post didn't go into depth on our particular use case, but this full-text indexing is just a small part of a larger filtering system. Having the index in Redis meant that we could execute the entirety of the query (which may factor in users, tags, modification dates etc) in Redis via union/inter/diff operations. Could we have learnt and used another technology? Sure, and we may still do so. For now this solution works well for us. Should other people use this technique? Like always, it depends on the situation.