-
Website
http://blog.kovyrin.net -
Original page
http://blog.kovyrin.net/2008/05/19/using-sphinx-for-non-fulltext-queries/ -
Subscribe
All Comments -
Community
-
Top Commenters
-
for you health
3 comments · 1 points
-
jamiew
1 comment · 6 points
-
qu1j0t3
1 comment · 1 points
-
TomK32
1 comment · 1 points
-
Scoundrel
9 comments · 1 points
-
-
Popular Threads
There are two different techniques - one is adding pseudo keywords and other is using filters and "Full Table Scan" query.
Pseudo keywords works if there are few of them in the query and they are well selective.
If you will have 10 keywords each with 90% selectivity this would not work well.
Filters w full table scan however can be slower with good selectivity but you can have a lot of non selective filters with very low penalty.
Also note Sphinx "full table scan" has optimizations so it often can skip a lot of "blocks" based on filters which makes it kind of similar to indexed lookup
First of all, you blog is very interesting and I like it, salute from Ireland to you! ;)
The problem is with MySQL(like with every DBMS written by folks wo/ corporate experience) still the relative small amount of features to handle something bigger than the average.
Let me show you what i am thinking about:
http://www.ibm.com/developerworks/db2/library/t...
http://www.oracle.com/technology/products/oracl...
http://msdn.microsoft.com/en-us/library/ms34514...
And just for the record, innodb is an Oracle product.
Maybe you can try this:
http://dev.mysql.com/doc/refman/5.1/en/partitio...
Regards,
lix
I have one comment regarding this:
From what I've read so far Sphynx is great only for non-constantly-changing-data... Am I correct.
If you have thousands of writes per second and you want the info to be available within 1-3 second span how would you do that with sphynx??? if reindexing takes 20-40 seconds of 3Mil rows as you said...
@Pavel
Sphinx can search multiple indexes in one query, so the basic idea is to create a main index, and the a delta index, you just more regually reindex the delta index. You can even have multiple delta indexes - basically constantly reindexing the changes. You can also use line attribute updates to 'delete' items from the main index without reindexing.