Laravel Scout v.s. MySQL Full Text Index? - laravel

I'm pretty new to Laravel and I've already got a light Laravel app running in production.
Now I have to implement a full-text search (e.g. search content in all posts), I came across these options:
Laravel Scout
MySQL Full-Text Index
1+2 => Laravel Scout MySQL Driver
Provided our current DAU is only 100+ and probably a few hundred searches a day, but hopefully, it will be scaled 100+ times later soon.
Which one should I go for and any Pro and Con between them? Anyone using Scout MySQL Driver instead of the default Algolia and is that worth the effort?

I've only used Algolia, so I will only talk about my opinion on Algolia. It's super fast and easy to implement, it also has many components for the popular Js frameworks(VUE, REACT) and even with vanilla Js. The components are really appealing to me, like InstantSearch, AutoComplete and many others. The only thing maybe is the money! We are ok with the STARTER plan which is 29/mo, but again this really depends on your budget and search volume.

Related

Project with Laravel and NOSQL

I want to start a project on Laravel and want to go for NOSQL. I need extensive search with this project and was considering Mongodb but I am not sure about search.
Few related questions:
Is there enough support for using NOSQL, incase I get stuck somewhere?
NOSQL is flexible enough for searching parameters?
If I need to import data from previous project to NoSQL will it be a challenge?
What about realtime time, does NOSQL supports realtime?
Thanks in advance.

Multitenant app with single database

I'm developing a multitenant application using Laravel. I've read different blogs, posts, sites for this and I decided to do it with a single database.
So, I know that I only need to filter every query with the tenant_id and that's it! But if I do it from every query, probably someday there'll be an error and I don't want to cause any information security issue for my tenants.
I read, probably, an old article for it, culttt.com/2014/03/31/multi-tenancy-laravel-4, and I found many concepts that I still don't understand because I'm new to Laravel.
Is this approach still the best for do it? Or has Laravel now its own solution to do it?
I like something similar to this: stackoverflow.com/questions/33219951/php-pdo-add-filter-to-all-queries but from Eloquent. How can I do this?
Thanks.
If I were you I would not go this way. I would create separate database for each client/each app - it's much safer solution and in addition in case you will need create Database backups or restore some client data it will be much simpler to do that than dealing with huge database when you have all your clients.

Cassandra and advanced queries: Spark, ElasticSearch, Sorl

Ok, so, I'm developing an app and I'm using Cassandra as the database.
Everything going good so far, but now I need to do a query using the LIKE clause.
I know Cassandra doesn't support that, and that's why after looking for a workaround I was thinking in maintaining this single table that I need to query using the LIKE clause in another database, other than Cassandra - was even considering a relational database, even though there wouldn't exist any relations.
Then I started looking to see if this is really the right approach, and came into stuff like Spark, Sorl and ElasticSearch.
Just to make it clear: I have little to no knowledge about those frameworks. Really. I only have heard about them and that's all.
So, I'm not here to ask you guys 'hey, how to do that using this framework?'. I just want to know, before I dig into any of those: Would any of those satisfy my needs? - Since I have no idea exactly how they work, and what exactly they are for.
If it is the case, them I'll study the framework properly - I just don't want to spend the time to figure out it has nothing to do with my problem.
Thanks!
Both elasticsearch and solr fits your needs. They use lucene library to perform reverse indexing and much more -- Datastax enterprise (commercial distribution of Cassandra) offer this solution integrating solr natively. One more solution (little different but working) is to integrate infinispan which offers both integration with Cassandra repository and reverse indexing ...
HTH,
Carlo

Hosted full-text search options - IndexTank vs Solr vs Lucene

I am building an app using Ruby on Rails on Heroku and am confused about which full-text search option I should proceed with. A few things I care about:
Real-Time search: I am building a dynamic user-generated website.
Understands Rails Models: I would like to restrict search results based on who the user is (so, I don't really want "just" a site-wide search)
Additionally, something that is easy to configure on Heroku with Rails would be a bonus.
Heroku currently provides three options for full-text search: FlyingSphinx, Searchify IndexTank and WebSolr. Can anyone outline the pro's and cons of each.
Based on my research, it seems that a lot of people have been happy with IndexTank. In particular, this blog post by Gautam Rege briefly outlines his experience with the three options and how he prefers IndexTank.
However, after LinkedIn's acquisition of IndexTank, some key components of IndexTank were open-sourced and the IndexTank service discontinued. It seems that Searchify is one of the first few (if not, currently, the only) replacement for IndexTank. Does anyone have any experience using this? How does Searchify compare to IndexTank and the other two options - WebSolr and FlyingSphinx?
I'll address your question with regards to Searchify/IndexTank:
Searchify has true real-time indexing. The millisecond you add a document, it becomes searchable. No need to commit or reindex.
There is a Ruby client library for Searchify, here are the docs & download links: http://www.searchify.com/documentation/ruby-client
There is also a nice 3rd party client by kidpollo called Tanker that some Ruby folks prefer: https://github.com/kidpollo/tanker

What is a good choice for Fulltext indexing when developing a OSX application?

Hy,
I'm implementing an IMAP client as a Mac OSX application using MacRuby.
For the sake of offline availability, I wanted to allow fulltext indexing and attribute based indexing of all messages. Attributes include common E-Mail stuff like from:, to:, etc...
This would allow for advanced results sprinkled with faceting, analytic calculations and such.
Now I'm unsure about the choices and good practices when it comes to integrating such a search feature. I have a strong web development background, therefore my intuitive action would be to setup a Solr server and start feeding it with data. This might just work theoretically, as I could write an Agent that manages the solr instance for my application in the background. But to me, this approach seems like an infrastructure hassle.
On the other side, I've read about people using the FTS3 functionality from SQLite. This approach is easily accessible by CoreData. I haven't used SQLite's FTS3 but I don't think it is as powerful as Solr can be.
What is your weapon of choice for a use case like mine?
I'm mainly interested in solutions that are actually in use by Objective-C/Cocoa/MacRuby developers.
In you're going to develop the app with Ruby give a try to picky. It is very simple to use.
There is an Objective-C Lucene port
http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/LuceneKit/
I have not used it, but in your situation, I'd at least check it out. In my experience, SQL based full text search can't compete with Lucene, but haven't tried SQLite for this.
EDIT: just noticed the ruby tag -- this started out as port of Lucene
https://github.com/dbalmain/ferret

Resources