Sphinx profile

If you are interested in installing Sphinx-0.9.9, you can click compile and install Sphinx-0.9.9 full text search to see the details ~!

Sphinx Chinese Handbook

Create a Sphinx index

Source src_blog {type = mysql sql_host = 192.168.1.208 sql_user = root sql_pass = woshishui sql_db = yphp_pic sql_query_pre= SET NAMES utf8 sql_query = SELECT * FROM yphp_pic sql_attr_uint= pr sql_attr_uint = big_id sql_attr_uint Small_ID SQL_ATTR_UINT = DEL SQL_ATTR_UINT = Z_FORMAT SQL_Ranged_throttle = 0} RT_FIELD is the retrieval field, Rt_attr_uint is returning to field index sphinx_blog {source = src_blog path = / usr/local/sphinx/var/data/sphinx_blog docinfo = extern mlock = 0 stopwords = min_prefix_len = 0 min_infix_len = 0 morphology = none min_word_len = 2 charset_type = zh_cn.utf-8  charset_dictpath = /usr/local/mmseg3/ charset_table = U+FF10.. U+FF19->0.. 9, 0.. 9, U+FF41.. U+FF5A->a.. z, U+FF21.. U+FF3A->a.. z,A.. Z->a.. z, a.. z, U+0149, U+017F, U+0138, U+00DF, U+00FF, U+00C0.. U+00D6->U+00E0.. U+00F6,U+00E0.. U+00F6, U+00D8.. U+00DE->U+00F8.. U+00FE, U+00F8.. U+00FE, U+0100->U+0101, U+0101,U+0102->U+0103, U+0103, U+0104->U+0105, U+0105, U+0106->U+0107, U+0107, U+0108->U+0109,U+0109, U+010A->U+010B, U+010B, U+010C->U+010D, U+010D, U+010E->U+010F, U+010F,U+0110->U+0111, U+0111, U+0112->U+0113, U+0113, U+0114->U+0115, U+0115, U+0116->U+0117,U+0117, U+0118->U+0119, U+0119, U+011A->U+011B, U+011B, U+011C->U+011D, U+011D,U+011E->U+011F, U+011F, U+0130->U+0131, U+0131, U+0132->U+0133, U+0133, U+0134->U+0135,U+0135, U+0136->U+0137, U+0137, U+0139->U+013A, U+013A, U+013B->U+013C, U+013C,U+013D->U+013E, U+013E, U+013F->U+0140, U+0140, U+0141->U+0142, U+0142, U+0143->U+0144,U+0144, U+0145->U+0146, U+0146, U+0147->U+0148, U+0148, U+014A->U+014B, U+014B,U+014C->U+014D, U+014D, U+014E->U+014F, U+014F, U+0150->U+0151, U+0151, U+0152->U+0153,U+0153, U+0154->U+0155, U+0155, U+0156->U+0157, U+0157, U+0158->U+0159, U+0159,U+015A->U+015B, U+015B, U+015C->U+015D, U+015D, U+015E->U+015F, U+015F, U+0160->U+0161,U+0161, U+0162->U+0163, U+0163, U+0164->U+0165, U+0165, U+0166->U+0167, U+0167,U+0168->U+0169, U+0169, U+016A->U+016B, U+016B, U+016C->U+016D, U+016D, U+016E->U+016F,U+016F, U+0170->U+0171, U+0171, U+0172->U+0173, U+0173, U+0174->U+0175, U+0175,U+0176->U+0177, U+0177, U+0178->U+00FF, U+00FF, U+0179->U+017A, U+017A, U+017B->U+017C,U+017C, U+017D->U+017E, U+017E, U+0410.. U+042F->U+0430.. U+044F, U+0430.. U+044F,U+05D0.. U+05EA, U+0531.. U+0556->U+0561.. U+0586, U+0561.. U+0587, U+0621.. U+063A, U+01B9,U+01BF, U+0640.. U+064A, U+0660.. U+0669, U+066E, U+066F, U+0671.. U+06D3, U+06F0.. U+06FF,U+0904.. U+0939, U+0958.. U+095F, U+0960.. U+0963, U+0966.. U+096F, U+097B.. U+097F,U+0985.. U+09B9, U+09CE, U+09DC.. U+09E3, U+09E6.. U+09EF, U+0A05.. U+0A39, U+0A59.. U+0A5E,U+0A66.. U+0A6F, U+0A85.. U+0AB9, U+0AE0.. U+0AE3, U+0AE6.. U+0AEF, U+0B05.. U+0B39,U+0B5C.. U+0B61, U+0B66.. U+0B6F, U+0B71, U+0B85.. U+0BB9, U+0BE6.. U+0BF2, U+0C05.. U+0C39,U+0C66.. U+0C6F, U+0C85.. U+0CB9, U+0CDE.. U+0CE3, U+0CE6.. U+0CEF, U+0D05.. U+0D39, U+0D60,U+0D61, U+0D66.. U+0D6F, U+0D85.. U+0DC6, U+1900.. U+1938, U+1946.. U+194F, U+A800.. U+A805,U+A807.. U+A822, U+0386->U+03B1, U+03AC->U+03B1, U+0388->U+03B5, U+03AD->U+03B5,U+0389->U+03B7, U+03AE->U+03B7, U+038A->U+03B9, U+0390->U+03B9, U+03AA->U+03B9,U+03AF->U+03B9, U+03CA->U+03B9, U+038C->U+03BF, U+03CC->U+03BF, U+038E->U+03C5,U+03AB->U+03C5, U+03B0->U+03C5, U+03CB->U+03C5, U+03CD->U+03C5, U+038F->U+03C9,U+03CE->U+03C9, U+03C2->U+03C3, U+0391.. U+03A1->U+03B1.. U+03C1,U+03A3.. U+03A9->U+03C3.. U+03C9, U+03B1.. U+03C1, U+03C3.. U+03C9, U+0E01.. U+0E2E,U+0E30.. U+0E3A, U+0E40.. U+0E45, U+0E47, U+0E50.. U+0E59, U+A000.. U+A48F, U+4E00.. U+9FBF,U+3400.. U+4DBF, U+20000.. U+2A6DF, U+F900.. U+FAFF, U+2F800.. U+2FA1F, U+2E80.. U+2EFF,U+2F00.. U+2FDF, U+3100.. U+312F, U+31A0.. U+31BF, U+3040.. U+309F, U+30A0.. U+30FF,U+31F0.. U+31FF, U+AC00.. U+D7AF, U+1100.. U+11FF, U+3130.. U+318F, U+A000.. U+A48F,U+A490.. U+A4CF html_strip = 0 }

Restart the sphinx

pkill -9 searchd /usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --all / usr/local/sphinx/bin/searchd - config/usr/local/sphinx/etc/sphinx. Conf # stopped searchd first, pay attention to if adopt the way of the kill, To ensure that the/var/log/searchd consistency of pid file/usr/local/sphinx/bin/searchd - config/usr/local/sphinx/etc/conf., d/a sphinx. Conf # - stop Rebuild all index/usr/local/sphinx/bin/indexer - config/usr/local/sphinx/etc/conf., d/a sphinx. Conf - all # start searchd service / usr/local/sphinx/bin/searchd - config/usr/local/sphinx/etc/sphinx. Conf # try the rotate command to rebuild index index - all - rotate

After the above steps, if there is no problem, we have successfully imported MySQL data Sphinx, now let’s take a look at how to retrieve Sphinx data from PHP

Sphinx starts the script from scratch

What is the value of the CONFIG_FILE? What is the value of the CONFIG_FILE

#! /bin/bash # # Init file for searchd # # chkconfig: 2345 55 25 # # description: searchd # # USE "chkconfig --add searchd" to configure Sphinx searchd service # # by Vladimir Fedorkov Mar 1, 2006, [email protected]<script cf-hash="f9e31" type="text/javascript"> # public domain SUDO_USER=root BASE_PATH=/usr/local/sphinx PID_FILE=$BASE_PATH/var/searchd.pid CONFIG_FILE=`ls $BASE_PATH/etc/conf.d/*conf` EXEC_PATH=$BASE_PATH/bin DATA_PATH=$BASE_PATH/var/data LOG_PATH=$BASE_PATH/var/log RETVAL=0 prog="searchd" do_config() {  chown -R $SUDO_USER $BASE_PATH chmod 600 $BASE_PATH/etc chmod u+rwx $EXEC_PATH/* chmod -R u+rw,go-rwx $DATA_PATH chmod -R u+rw,go-rwx $LOG_PATH } do_start() { do_config echo "Starting $prog" for file in ${CONFIG_FILE[*]} do sudo -u $SUDO_USER $EXEC_PATH/$prog --config $file done RETVAL=$? echo return $RETVAL } do_stop() { echo "Stopping $prog" if [ -e $PID_FILE ] ; then kill -15 `cat $PID_FILE` sleep 5 if [ -e $PID_FILE ] ; then kill -9 `cat $PID_FILE` fi fi RETVAL=$? echo return $RETVAL } case $* in start) do_start ;; stop) do_stop ;; restart) do_stop sleep 3 do_start ;; *) echo "usage: $0 {start|stop|restart}" >&2 exit 1 ;; esac exit $RETVAL

Sphinx boots up from the boot configuration

# copy the script file to init. D. cp sphinx directory/etc/init. # d/add operation permissions chmod + x to script/etc/init. D/sphinx # # to check the service list the chkconfig -- the list add service Chkconfig --level 2345 sphinx on

Example index. PHP file code

<? PHP $sphinx_api = new SphinxClient('192.168.1.208', 9312); # false (default), the match is returned as a PHP hash format, the document ID is the key, and the other information (weight, attribute) is the value. $sphinx_api-> setArrayResult (true); $sphinx_api-> setArrayResult (true); // SPH_MATCH_ALL matches all query words (default mode); // SPH_MATCH_ANY matches any of the query words; // SPH_MATCH_PHRASE, which treats the entire query as a phrase and requires a complete match in order; // SPH_MATCH_BOOLEAN, treating the query as a Boolean expression (see Section 4.2, "Boolean query syntax"); // SPH_MATCH_EXTENDED, which treats the query as an expression of the Sphinx/Coreseek internal query language (see Section 4.3, "Extended query syntax"). Starting with version Coreseek 3/Sphinx 0.9.9, this option has been replaced with the option SPH_MATCH_EXTENDED2, which provides more functionality and better performance. This option is kept to be compatible with legacy old code -- so that the old application code will continue to work even as Sphinx and its components include API upgrades. // SPH_MATCH_EXTENDED2, which uses the second version of the "ExtendedMatch Mode" to match the query. // SPH_MATCH_FULLSCAN, which forces to match the query using the "Full Scan" mode described below. Note that in this mode, all query terms are ignored, and no text matching will occur, although filters, filter ranges, and grouping are still in effect. // docinfo is stored extern. $sphinx_api-> setMatchMode (SPH_MATCH_EXTENDED); Function SetLimits ($offset, $limit, $max_matches=0); $cutoff=0) // Set an offset for the server-side result set ($offset) and a limit on the number of matches returned to the client from that offset ($limit). You can also set the result set size of the current query on the server side ($max_matches), with a threshold ($cutoff) that stops the search when matches are found. All of these parameters must be non-negative integers. $sphinx_api - > SetLimits (0,17,17,1000000); $sphinx_api->ResetFilters(); $sphinx_api->ResetFilters(); $sphinx_api-> resetGroupBy (); $sphinx_api->SetFilter("sex", 1, false); $sphinx_api->SetFilter("sex", 1, false); SPH_SORT_Relevance () is a model of Relevance and Relevance that is sorted in descending order of relevance (the best matches are first) // SPH_SORT_ATTR_ASC mode, ascending order by attribute (smaller attribute value is the first) // SPH_SORT_TIME_SEGMENTS mode, The columns are grouped in an SQL-like manner in ascending or descending order, first by time period (last hour/day/week/month) and then by relevance descending // SPH_SORT_EXTENDED pattern. SPH_SORT_EXPR (); // Sort by an arithmetic expression. $sphinx_api->SetSortMode (SPH_SORT_EXPR, "@weight/100" ); $sphinxdata = $sphinx_api->Query(", 'sphinx_blog'); echo '<pre>'; print_r($sphinxdata);

Screenshot of the data after the run

conclusion

We can now use Sphinx normally, want to use the good, or very complex, how to accurately, quickly find the data you want to see your………………