Fastest SQL Full Text Search - mysql

I'm currently using SQLite FTS4 engine, and its performance is great. But does someone know of any benchmarks/comparison to MySQL's full text search (or any other SQL database)?
P.S. I'm not looking for any Lucene/NoSQL alternatives.

Bill Karwin from Percona performed benchmarks on Full-Text search MySQL vs Sphinx vs Lucene. You could find slides here http://bit.ly/M6DMsj

Related

How to accomplish full text search in MySQL 5.5 Engine = innodb?

I've gone through many articles but didn't find how can I do it alternate to match and against. In one of my project I need to use this and it is not suitable to upgrade the version of the database.
Is there any way?

Moving form Full text search in Sql Server To MySql

I already have a product in production where i used Entity Framework with SQL Server as db. I've used full text search wherein i store binary data (filestream) along with the file extension which is used by the Full Text Search Engine to index. Not to mention that was a cake walk.
Now, am planning to move to mysql (cuz of obvious reasons -- cost, open-source etc). The product is in SAAS model (although this is the time i can actually take definite call as traffic isn't high) so volume will be high, so search engine should be scalable.
Migration to mysql is easy (will be using INNODB, again for obvious reasons), am only stuck with Full Text Search as right now only the binary data is stored in Sql Server. Although INNODB supports full text search in version 5.6 onwards I did not find exact way to Full Text Index (that is using binary).
Am not sure of using third party full text search engine (Lucene, Sphinx etc) as my searches will be combination of structured and unstructured, for ex: All the Customers from Ohio (structured data as i capture and store the information in RDB) and who have "insurance" in their set of documents (unstrucutred) uploaded. In SQL Server i use "ContainsTable" which gives me ranked results.
I have following questions :-
Will this movement really be fruitful in the long run? Lets say i do
migrate the existing data (in 4 figures).
Although INNODB provides all the necessary features, does that match in SQL Server ease of use, administration and scale?
Some more questions...
Can i move the full text table to mysql as is? I guess i cant index
blob columns.
Should i use mysql full text or any third party
engine?
Thats really hard to say, ive used both system and i do prefeer MySql. Allthough i find that index rebuilding is alot faster in MSSQL. A tip, in MySQL, if you have alot of updates to the fulltext tables, that you simply drop the whole index, do the update and readd the FT index. This will save you insane amount of time and give you less headace.
I make use of MySQL workbench. It has proven to me to be very very useful. But here, MSSQL has a massive advantage with Studio Manager with alot more feature and scalability.
The question itself is very broad there are so many aspects. If you biggest concern is cost than MySQL is the best option. Performance wise if the MySQL server setup is good i have seen very little difference in performace between the RDBS.
Im not sure if my question was helpful but i hope it gave you a little bit insight.
EDIT:
No you cannot FT in blob.
I suggest a document based search engine then like SOLR, Lucene...

Search in forum with innodb

I'm using MySQL 5.3 and have no possiblilty to update it to a newer version (5.6 supports full-text search for innodb).
So my question is, should I user Myisam instead so I can use full-text search for my forums table?
The users need to be able to search in the table or should I solve it someway else, (what way?).
EDIT: Or should I use LIKE in SQL?

Search Engine using php , InnoDB Engine Mysql

SELECT firstname, lastname,comments
FROMusers
WHERE MATCH(firstname,lastname,comments)
AGAINST('$searchterm')
I tried the above one as query for search engine ,but mysql says FULL-TEXT INDEXING is supported only on MYISAM ,Engine i am using is innoDB,Please tell me the best way of coloumn INDEX searching ON InnoDB Engine.
Based on my knowledge, MySQL FTS has been available for InnoDB since version 5.6 (http://dev.mysql.com/tech-resources/articles/whats-new-in-mysql-5.6.html)
You should take a look at MySQL Fulltex search document here http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html
Basically, I think you should understand what is 'index' and how MySQL do indexing. This article is very useful for helping understand the mechanism behind MySQL fulltext search http://dev.mysql.com/doc/internals/en/full-text-search.html
There are several important concepts in full-text search:
Boolean mode
Natural language mode
I also recommend you read about stopwords list in MySQL FTS.
System variable likes ft_min_word_len is also important.
After understanding these things, I think you will know how to apply MySQL fulltext search properly.

More resource usage friendly search than fulltext search?

I just use following code right now.
SELECT terms FROM searches WHERE MATCH(q) AGAINST('search term') LIMIT 20;
The table is MyISAM 90MB. terms has FULLTEXT INDEX and it is varchar(255). There are 1,000,000 rows on the table.
I wonder if there is any solution which is more resource usage friendly than fulltext search on MySQL? Especially in terms of memory.
By saying solution, I refer to any solution such as other types of databases, table structures etc.
and if the solution would be adaptable to a standart VPS or hosting in general, it would be extremely super duper perfect!
Thanks for your time!
I would check out Apache Solr. You can continue to use your MySQL database, have the Solr server index that column and use the Solr server to later do full-text searches on that column. There are even hosted solutions, see WebSolr.