久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

Sphinx/使用 SphinxSE

來自站長(zhǎng)百科
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

Sphinx | 安裝 | 建立索引|搜索|命令行工具參考|MySQL存儲(chǔ)引擎

要通過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)。

參考來源[ ]

Sphinx使用手冊(cè)導(dǎo)航

安裝

支持的操作系統(tǒng)|需要的工具|在Linux、BSD上安裝Sphinx|在Windows上安裝Sphinx|已知的安裝問題和解決辦法|Sphinx快速入門教程

建立索引

數(shù)據(jù)源|屬性|MVA|索引|源數(shù)據(jù)的限制|字符集、大小寫轉(zhuǎn)換和轉(zhuǎn)換表|SQL 數(shù)據(jù)源|xmlpipe 數(shù)據(jù)源|xmlpipe2 數(shù)據(jù)源|Python 數(shù)據(jù)源|實(shí)時(shí)索引更新|索引合并

搜索

匹配模式|布爾查詢語(yǔ)法|擴(kuò)展查詢語(yǔ)法|權(quán)值計(jì)算|排序模式|結(jié)果分組|分布式搜索|MySQL 協(xié)議支持與SphinxQL

命令行工具參考

indexer命令參考|searchd命令參考|search命令參考|spelldump命令參考|indextool命令參考

MySQL存儲(chǔ)引擎

SphinxSE 概覽|安裝 SphinxSE|使用 SphinxSE|通過 MySQL 生成片段