{"id":209,"title":"sphinx\u5168\u6587\u7d22\u5f15","good":0,"bad":0,"hit":2275,"created_at":"2016-03-13 00:52:57","content":"

\u5e94\u7528\u573a\u666f\uff1a\u5982\u767e\u5ea6\u641c\u7d22\u3001\u6309\u6b4c\u8bcd\u641c\u6b4c\u66f2\u7b49<\/p>

<\/p>

\u4ee5\u4e0b\u5728windows\u73af\u5883\u4e0b\u64cd\u4f5c\uff1a<\/p>

<\/p>

\u4ec0\u4e48\u662fsphinx?<\/p>

 <\/p>

Sphinx\u662f\u4e00\u4e2a\u72ec\u7acb\u7684\u5168\u6587\u7d22\u5f15\u5f15\u64ce\uff0c\u4e13\u95e8\u7528\u6765\u5bf9\u5927\u6570\u636e\u91cf\u7684\u5927\u6587\u672c\u5b57\u6bb5\u7c7b\u578b\u5efa\u7d22\u5f15\u7684\u8f6f\u4ef6\u3002<\/p>

 <\/p>

sphinx\u7684\u4f7f\u7528\u6d41\u7a0b\uff1a<\/p>

                    <\/p>

\u5982\uff1a\u67e5\u8be2\u51fa\u6240\u6709\u6b4c\u8bcd\u4e2d\u5e26\u6709\u51ac\u5929\u3002<\/p>

1. \u5148\u67e5\u8be2sphinx\u4e2d\u7684\u7d22\u5f15\uff0c\u7136\u540esphinx\u4f1a\u8fd4\u56de\u6240\u6709\u5e26\u51ac\u5929\u7684\u6b4c\u66f2\u7684id<\/p>

2. \u518d\u6839\u636eid \u67e5\u8be2mysql\u6570\u636e\u5e93<\/p>

SELECT * FROM songs WHERE id IN (1,2,3,4)<\/p>

\u8fd9\u91cc\u56e0\u4e3aid\u4e0a\u6709\u7d22\u5f15\uff0c\u6240\u4ee5\u8fd9\u4e2aSQL\u4f1a\u975e\u5e38\u5feb\uff01\u7edd\u5bf9\u6bd4\u76f4\u63a5\u6267\u884c<\/p>

SELECT * FROMsongs WHERE gechi LIKE \u201c%\u51ac\u5929%\u201d\u5feb\uff08\u524d\u63d0\uff1a\u6570\u636e\u91cf\u5927\u7684\u65f6\u5019\uff09<\/p>

 <\/p>

\u6700\u5e38\u7528\u7684\u4e24\u4e2a\u547d\u4ee4\uff1a<\/p>

indexer.exe  : \u5efa\u7d22\u5f15<\/p>

searchd.exe  : sphinx \u7684\u670d\u52a1\u5668\uff08\u5728\u5efa\u5b8c\u7d22\u5f15\u4e4b\u540e\uff0c\u542f\u52a8\u670d\u52a1\u5668\u63d0\u4f9b\u7d22\u5f15\u67e5\u8be2\u7684\u670d\u52a1\u5668\uff09<\/p>

 <\/p>

 <\/p>

\u4e3a\u6570\u636e\u521b\u5efa\u5efa\u7d22\u5f15<\/p>

 <\/p>

\u6d41\u7a0b\uff1a<\/p>

1.        \u5148\u8fde\u63a5MYSQL<\/p>

2.        \u6267\u884c\u524d\u7f6eSQL (sql_query_pre)<\/p>

3.        \u6267\u884c\u4e3b\u67e5\u8be2\u53d6\u51fa\u6570\u636e (sql_query)<\/p>

4.        \u5bf9\u53d6\u51fa\u7684\u6570\u636e\u5efa\u7acb\u7d22\u5f15<\/p>

5.        \u6267\u884c\u540e\u7f6eSQL<\/p>

6.        \u5173\u95edMYSQL\u7684\u8fde\u63a5<\/p>

 <\/p>

 <\/p>

 <\/p>

 <\/p>

\u7b2c\u4e00\u6b65\uff1a\u4fee\u6539\u914d\u7f6e\u6587\u4ef6<\/p>

\u7b2c\u4e8c\u6b65\uff1a\u5728\u547d\u4ee4\u884c\u4e2d\u8fd0\u884cindexer.exe\u7a0b\u5e8f<\/p>

indexer.exe -c d:\/sphinx\/sphinx.conf   songs   --> \u4e3asongs\u8fd9\u4e2a\u6570\u636e\u6e90\u5efa\u7d22\u5f15<\/p>

indexer.exe -c d:\/sphinx\/sphinx.conf  --all     --> \u4e3a\u914d\u7f6e\u6587\u4ef6\u4e2d\u6240\u6709\u7684\u6570\u636e\u6e90\u90fd\u521b\u5efa\u7d22\u5f15<\/p>

<\/p>

 <\/p>

\u542f\u52a8\u670d\u52a1\u5668<\/p>

searchd.exe -c d:\/sphinx\/sphinx.conf<\/p>

<\/p>

\u670d\u52a1\u5668\u8fd8\u6709\u7684\u53c2\u6570\uff1a<\/p>

searchd \u5f00\u542f\u670d\u52a1\u7aef<\/p>

searchd -d \u914d\u7f6e\u6587\u4ef6 \u7d22\u5f15\u540d\u79f0<\/p>

\u670d\u52a1\u7aef\u9ed8\u8ba4\u76d1\u542c9312\u7aef\u53e3<\/p>

\u5e38\u7528\u547d\u4ee4\uff1a<\/p>

-c \u6307\u5b9a\u914d\u7f6e\u6587\u4ef6\u8def\u5f84<\/p>

--stop \u505c\u6b62\u5f53\u524d\u670d\u52a1<\/p>

--status \u67e5\u770b\u5f53\u524d\u72b6\u6001<\/p>

--install \u5b89\u88c5\u4e3awindows\u670d\u52a1<\/p>

--delete \u5220\u9664windows\u670d\u52a1<\/p>

--port \u76d1\u542c\u7684\u7aef\u53e3<\/p>

--index indexName \u53ea\u67e5\u8be2\u67d0\u4e2a\u7d22\u5f15\uff0c\u9ed8\u8ba4\u67e5\u8be2\u6240\u6709\u7d22\u5f15<\/p>

 <\/p>

\u4f7f\u7528\u7528PHP\u67e5\u8be2\u6570\u636e<\/p>

<?<\/p>

header('Content-Type:text\/html;Charset=utf-8');<\/p>

require ('sphinxapi.php');\/\/\u5f15\u5165api,\u5728sphinx\u89e3\u538b\u76ee\u5f55\u7684api\u76ee\u5f55\u4e0b<\/p>

$sc=new SphinxClient();<\/p>

$sc->setMatchMode(\u5339\u914d\u6a21\u5f0f\u540d);<\/p>

$sc->setServer('localhost',9312);<\/p>

 $result=$sc->query(\u8981\u67e5\u7684\u8bcd,\u6570\u636e\u6e90\u540d\u79f0);<\/p>

?><\/p>

<\/p>

\u5339\u914d\u6a21\u5f0f<\/p>

SPH_MATCH_ALL:\u5206\u8bcd\u540e\u7684\u6bcf\u4e2a\u5b57\u3001\u8bcd\u90fd\u5f97\u51fa\u73b0\uff0c\u53ef\u4ee5\u4e0d\u8fde\u7eed\uff0c\u9ed8\u8ba4\u65b9\u5f0f<\/p>

SPH_MATCH_ANY:\u5206\u8bcd\u540e\u7684\u8bcd\u81f3\u5c11\u5339\u914d\u4e00\u4e2a<\/p>

SPH_MATCH_PHRASE:\u6240\u6709\u7684\u5b57\u90fd\u5fc5\u987b\u51fa\u73b0\uff0c\u5e76\u4e14\u8fde\u5728\u4e00\u8d77<\/p>

SPH_MATCH_BOOLEAN:\u5c06\u67e5\u8be2\u770b\u4f5c\u4e00\u4e2a\u5e03\u5c14\u8868\u8fbe\u5f0f<\/p>

SPHP_MATCH_EXTENDED:\u5c06\u67e5\u8be2\u770b\u4f5c\u4e00\u4e2asphinx\u8868\u8fbe\u5f0f<\/p>

 <\/p>

 <\/p>

\u81ea\u52a8\u7d22\u5f15\u7684\u66f4\u65b0\uff1asphinx\u7684\u4e3b\u7d22\u5f15+\u589e\u91cf\u7d22\u5f15<\/p>

 <\/p>

\u7b2c\u4e00\u6b65\uff1a\u5148\u5efa\u4e00\u4e2a\u8868\u7528\u6765\u5b58\u5f53\u524d\u5df2\u7ecf\u521b\u5efa\u7d22\u5f15\u7684\u6700\u540e\u4e00\u6761\u8bb0\u5f55\u7684ID<\/p>

CREATE TABLE a<\/p>

(<\/p>

id int unsignednot null auto_increment,<\/p>

max_id intunsigned not null default \u20180\u2019,   # \u6700\u540e\u4e00\u6761\u5df2\u7ecf\u521b\u5efa\u4e86\u7d22\u5f15\u7684ID<\/p>

primary key (id)<\/p>

)<\/p>

\u7b2c\u4e8c\u6b65\uff1a\u4fee\u6539\u914d\u7f6e\u6587\u4ef6<\/p>

\u4e3b\u6570\u636e\u6e90\u4e2d\u6dfb\u52a0sql_query_post\u8bb0\u5f55\u4e0b\u6700\u540e\u7684ID<\/p>

\u914d\u7f6e\u6587\u4ef6\u4e2d\u589e\u52a0\uff1a<\/p>

sql_query_post = replace into a(id,max_id) select 1,max(id) from \u8868\u540d<\/p>

\u518d\u6dfb\u52a0\u4e00\u4e2a\u589e\u91cf\u90e8\u5206\u7684\u6570\u636e\u6e90<\/p>

sql_query=select id,titile,content from songs where id> select max_id from a<\/p>

\u589e\u91cf\u7d22\u5f15\u914d\u7f6e\u4e0e\u4e0a\u9762\u76f8\u540c<\/p>

 <\/p>

\u7b2c\u4e09\u6b65\uff1a<\/p>

1. indexer.exe-c d:\/sphinx\/sphinx.conf songs<\/p>

2. \u5b9a\u671f\u6267\u884c\u4ee5\u4e0b\u6b65\u9aa4\uff1a<\/p>

indexer.exe -cd:\/sphinx\/sphinx.conf  songs_zl     --> \u4e3a\u589e\u91cf\u7684\u6570\u636e\u521b\u5efa\u7d22\u5f15<\/p>

indexer.exe--merge songs songs_zl --rotate   -->   --rotate:\u9009\u62e9phinx\u670d\u52a1\u5668\u7d22\u5f15\u6709\u66f4\u65b0\u8981\u66ff\u6362\u65b0\u7684\u7d22\u5f15<\/p>

 <\/p>

replace into \u7684\u610f\u601d\uff1a\u5982\u679c\u8fd9\u6761\u8bb0\u5f55\u4e0d\u5b58\u5728\u5c31\u63d2\u5165\u8fd9\u6761\u8bb0\u5f55\uff0c\u5982\u679c\u5df2\u7ecf\u5b58\u5728\u5c31\u66f4\u65b0\u8fd9\u6761\u8bb0\u5f55<\/p>

 <\/p>

\u5982\u4f55\u5b9a\u671f\u6267\u884c\uff1f<\/p>

\u628a\u4ee5\u4e0a\u4e24\u4e2a\u547d\u4ee4\u5199\u5230\u4e00\u4e2a\u6587\u4ef6\u4e2d\uff0c\u6587\u4ef6\u540d\u4e3asphinx.bat \uff08\u6279\u5904\u7406\u6587\u4ef6\uff09\uff0c\u7136\u540e\u4f7f\u7528windws\u7cfb\u7edf\u81ea\u5e26\u7684\u8ba1\u5212\u4efb\u52a1\u6765\u8bbe\u7f6e\u8fd9\u4e2a\u811a\u672c\u5b9a\u671f\u6267\u884c<\/p>

\u5f00\u59cb\u300b\u7a0b\u5e8f\u300b\u9644\u4ef6\u300b\u7cfb\u7edf\u5de5\u5177\u300b\u8ba1\u5212\u4efb\u52a1<\/p>

<\/p>

 <\/p>

\u4ec0\u4e48\u662fSphinxSE?<\/p>

\u5728windows\u4e0bsphinx\u4e0emysql\u662f\u5206\u5f00\u7684\uff0c\u5982\u679c\u8981\u8fdb\u884c\u5168\u6587\u7d22\u5f15\uff0c\u5148\u8981\u67e5sphinx\u53d6\u5f97\u641c\u7d22\u7ed3\u679c\u5bf9\u5e94\u6570\u636e\u7684id,\u7136\u540e\u901a\u8fc7id\u53bb\u67e5mysql\u6570\u636e\u5e93\uff0c\u8fd9\u6837\u6bcf\u6b21\u90fd\u8981\u8fde\u63a5\u4e24\u6b21\uff1bsphinxSE\u662f\u4e00\u4e2a\u53ef\u4ee5\u96c6\u6210\u4e8emysql\u7684\u63d2\u4ef6\uff0c\u4f46\u662f\u5f97\u5728\u5f00\u6e90\u7684\u64cd\u4f5c\u7cfb\u7edf\uff08\u5982linux)\u4e0b\u91cd\u65b0\u7f16\u7ecemysql\u5c06\u4ed6\u4eec\u6574\u5408\u5230\u4e00\u8d77\uff1b\u8fd9\u6837\u76f4\u63a5\u8fde\u63a5mysql\u5c31\u53ef\u4ee5\u64cd\u4f5csphinx\u4e86\uff1b<\/p>

 <\/p>

<\/p>"}