[solr] ElasticSearch, Sphinx, Lucene, Solr, Xapian. Which fits for which usage?

My sphinx.conf

source post_source 
{
    type = mysql

    sql_host = localhost
    sql_user = ***
    sql_pass = ***
    sql_db =   ***
    sql_port = 3306

    sql_query_pre = SET NAMES utf8
    # query before fetching rows to index

    sql_query = SELECT *, id AS pid, CRC32(safetag) as safetag_crc32 FROM hb_posts


    sql_attr_uint = pid  
    # pid (as 'sql_attr_uint') is necessary for sphinx
    # this field must be unique

    # that is why I like sphinx
    # you can store custom string fields into indexes (memory) as well
    sql_field_string = title
    sql_field_string = slug
    sql_field_string = content
    sql_field_string = tags

    sql_attr_uint = category
    # integer fields must be defined as sql_attr_uint

    sql_attr_timestamp = date
    # timestamp fields must be defined as sql_attr_timestamp

    sql_query_info_pre = SET NAMES utf8
    # if you need unicode support for sql_field_string, you need to patch the source
    # this param. is not supported natively

    sql_query_info = SELECT * FROM my_posts WHERE id = $id
}

index posts 
{
    source = post_source
    # source above

    path = /var/data/posts
    # index location

    charset_type = utf-8
}

Test script:

<?php

    require "sphinxapi.php";

    $safetag = $_GET["my_post_slug"];
//  $safetag = preg_replace("/[^a-z0-9\-_]/i", "", $safetag);

    $conf = getMyConf();

    $cl = New SphinxClient();

    $cl->SetServer($conf["server"], $conf["port"]);
    $cl->SetConnectTimeout($conf["timeout"]);
    $cl->setMaxQueryTime($conf["max"]);

    # set search params
    $cl->SetMatchMode(SPH_MATCH_FULLSCAN);
    $cl->SetArrayResult(TRUE);

    $cl->setLimits(0, 1, 1); 
    # looking for the post (not searching a keyword)

    $cl->SetFilter("safetag_crc32", array(crc32($safetag)));

    # fetch results
    $post = $cl->Query(null, "post_1");

    echo "<pre>";
    var_dump($post);
    echo "</pre>";
    exit("done");
?>

Sample result:

[array] => 
  "id" => 123,
  "title" => "My post title.",
  "content" => "My <p>post</p> content.",
   ...
   [ and other fields ]

Sphinx query time:

0.001 sec.

Sphinx query time (1k concurrent):

=> 0.346 sec. (average)
=> 0.340 sec. (average of last 10 query)

MySQL query time:

"SELECT * FROM hb_posts WHERE id = 123;"
=> 0.001 sec.

MySQL query time (1k concurrent):

"SELECT * FROM my_posts WHERE id = 123;" 
=> 1.612 sec. (average)
=> 1.920 sec. (average of last 10 query)

Examples related to solr

Solr vs. ElasticSearch How to delete all data from solr and hbase How to query SOLR for empty fields? ElasticSearch, Sphinx, Lucene, Solr, Xapian. Which fits for which usage? using OR and NOT in solr query

Examples related to lucene

Solr vs. ElasticSearch How to query SOLR for empty fields? ElasticSearch, Sphinx, Lucene, Solr, Xapian. Which fits for which usage? Comparison of full text search engine - Lucene, Sphinx, Postgresql, MySQL? using OR and NOT in solr query

Examples related to elasticsearch

Elasticsearch error: cluster_block_exception [FORBIDDEN/12/index read-only / allow delete (api)], flood stage disk watermark exceeded Elasticsearch : Root mapping definition has unsupported parameters index : not_analyzed How to know elastic search installed version from kibana? Export to csv/excel from kibana Elasticsearch: Failed to connect to localhost port 9200 - Connection refused Elasticsearch difference between MUST and SHOULD bool query how to rename an index in a cluster? elasticsearch bool query combine must with OR Filter items which array contains any of given values How to check Elasticsearch cluster health?

Examples related to sphinx

Why does configure say no C compiler found when GCC is installed? ElasticSearch, Sphinx, Lucene, Solr, Xapian. Which fits for which usage? Comparison of full text search engine - Lucene, Sphinx, Postgresql, MySQL?

Examples related to xapian

ElasticSearch, Sphinx, Lucene, Solr, Xapian. Which fits for which usage?