WIKI使用導(dǎo)航
站長(zhǎng)百科導(dǎo)航
站長(zhǎng)專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機(jī)
- cPanel
- 網(wǎng)址導(dǎo)航專題
- 云計(jì)算
- 微博營(yíng)銷
- 虛擬主機(jī)管理系統(tǒng)
- 開放平臺(tái)
- WIKI程序與應(yīng)用
- 美國(guó)十大主機(jī)
Sphinx/使用 SphinxSE
要通過SphinxSE搜索,您需要建立特殊的ENGINE=SPHINX的“搜索表”,然后使用SELECT語(yǔ)句從中檢索,把全文查詢放在WHERE子句中。
讓我們從一個(gè)create語(yǔ)句和搜索查詢的例子開始:
CREATE TABLE t1 ( id INTEGER UNSIGNED NOT NULL, weight INTEGER NOT NULL, query VARCHAR(3072) NOT NULL, group_id INTEGER, INDEX(query) ) ENGINE=SPHINX CONNECTION="sphinx://localhost:9312/test"; SELECT * FROM t1 WHERE query='test it;mode=any';
搜索表前三列(字段)的類型必須是INTEGER UNSINGED(或者 BIGINT),INTEGER(或者 BIGINT)和VARCHAR(或者 TEXT),這三列分別對(duì)應(yīng)文檔ID,匹配權(quán)值和搜索查詢。這前三個(gè)列的映射關(guān)系是固定的,你不能忽略這三列中的任何一個(gè),或者移動(dòng)其位置,或者改變其類型。搜索查詢列必須被索引,其他列必須無(wú)索引。列的名字會(huì)被忽略,所以可以任意命名。
除此之外,其他列(字段)的類型必須是INTEGER、TIMESTAMP、BIGINT、VARCHAR或者FLOAT之一。它們必須與Sphinx結(jié)果集中提供的屬性按名稱綁定,即它們的名字必須與sphinx.conf中指定的屬性名一一對(duì)應(yīng)。如果Sphinx搜索結(jié)果中沒有某個(gè)屬性名,該列的值就為NULL.
特殊的“虛擬”屬性名也可以與SphinxSE列綁定。但特殊符號(hào)@用_sph_代替。例如,要取得@group和@count虛屬性,列名應(yīng)使用_sph_group和_sph_count。
可以使用字符串參數(shù)CONNECTION來指定用這個(gè)表搜索時(shí)的默認(rèn)搜索主機(jī)、端口號(hào)和索引。如果CREATE TABLE中沒有使用連接(connection)串,那么默認(rèn)使用索引名“*”(搜索所有索引)和localhost:9312。連接串的語(yǔ)法如下:
CONNECTION="sphinx://HOST:PORT/INDEXNAME"
默認(rèn)的連接串也可以日后改變:
ALTER TABLE t1 CONNECTION="sphinx://NEWHOST:NEWPORT/NEWINDEXNAME";
也可以在查詢中覆蓋全部這些選項(xiàng)。