Note that there are some explanatory texts on larger screens.

plurals
  1. POChoosing a stand-alone search server with custom ranking function, spartial search
    text
    copied!<p>I'm looking into the different options for choosing a search server for a project I'm involved in. The search server is used to power results on a dating website built in Rails, in which the search provides all the 'matchmaking'-magic.</p> <p>Typical queries would involve ranking documents/results using an expression (in pseudo-code):</p> <ul> <li>Order by ranking: <ul> <li>+50 if has_image attribute is true</li> <li>+10 if has_boost attribute is true</li> <li>+50 if latitude/longitude is within 40 miles from [point]</li> <li>+20 if latitude/longitude is within 80 miles [point]</li> <li>-(distance from attribute 'age' to 30)</li> </ul></li> <li>Filter by: <ul> <li>Attribute 'age' between 25 and 35</li> <li>Attribute 'sex' equals 'male'</li> </ul></li> </ul> <p>Per default I'm not needing the full-text features of most of the search servers out there, and I do not need the full documents to be retrieved - just a unique ID.</p> <p>The nature of the project yields for a search-server with the following properties:</p> <ul> <li>Spartial ranking</li> <li>Ranking of results based on a custom function</li> <li>Attribute filters</li> <li>Scalable and fast</li> <li>Free</li> </ul> <p>I've found Sphinx, Solr and ElasticSearch, but all of these are (as far as I see) built and optimized for full-text searching, with both ES and Solr built on Lucene, and I don't know what would perform best for filter/attribute heavy searching.</p> <p>My questions:</p> <ul> <li>Which of these servers would you prefer and why?</li> <li>Have I missed any other obvious choices?</li> </ul>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload