Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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
- }
- <?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");
- ?>
- [array] =>
- "id" => 123,
- "title" => "My post title.",
- "content" => "My <p>post</p> content.",
- ...
- [ and other fields ]
- 0.001 sec.
- => 0.346 sec. (average)
- => 0.340 sec. (average of last 10 query)
- "SELECT * FROM hb_posts WHERE id = 123;"
- => 0.001 sec.
- "SELECT * FROM my_posts WHERE id = 123;"
- => 1.612 sec. (average)
- => 1.920 sec. (average of last 10 query)
Add Comment
Please, Sign In to add comment