Sphinx features

I’ve got a search application which, going off what I’ve read about Sphinx Vs. MySQL Full-text, would perform ALOT better using Sphinx.

Features I need:

  • Column weighting, e.g. title should carry more weight than body, MySQL fulltext allows me to do this by using 2 seperate full-text indexes. This is obviously very inefficient. Does sphinx support this?

  • Boolean queries

  • Scoring and order by relevance. In this application other variables are taken account in the search results, e.g. age, locations etc, all recieve a score and are used in conjuction to the score provided by MySQL full-text to create the final score which the results are ordered by. Would sphinx allow this?

Features I’d like:

  • CJK support (I see Sphinx supports unicode, not sure if it recognises CJK glyphs however [beggers can’t be chosers]).

Features I don’t need:

  • Real time indexing. As each new row is also placed in the full-text index in mysql it is inefficient… Search index “lag” in relation to database information isn’t a problem. (I like how sphinx works here… how you can run a query after indexing to flag rows, pretty neat!)

Any opinions on Sphinx would be much appreciated!

Ok,

It can weight for individual columns:

weights
weights for Sphinx index columns (example: weights=1,10,4)

Which is great, as currently in MySQL I have SEPERATE full-text indexes on columns I wish to weight differently, extremely inefficient.

Also supports boolean queries.

All I really need to know now if it returns a “relevancy score” like MySQL full-text does, so that I can use it in conjuction to other columns to order result sets.

Using search with sphinx you can specify how do you want results to be sorted. They can be sorted by relevance, by some particular column or few other ways.