W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
索引在 Xunsearch
中泛指用于檢索的數(shù)據(jù)庫文件總稱。每一次檢索數(shù)據(jù)均為訪問和讀取 索引文件,每一次更新數(shù)據(jù)則是對索引文件的修改。
Xunsearch
每個搜索項目的索引數(shù)據(jù)是分開單獨存放的,索引本質(zhì)上是一系列預(yù)設(shè)計文件, 內(nèi)部都是特別設(shè)計的 Tree
結(jié)構(gòu),但這些東西不是這份指南所關(guān)注的。假設(shè)一個項目的名稱 為 demo
(即 INI
文件中 project.name
的值),那么它在服務(wù)端的索引數(shù)據(jù)的存儲 路徑為:
$prefix/data/demo
該目錄底下包含 2 個主要索引數(shù)據(jù)庫,分別是
db
默認的主索引數(shù)據(jù)庫,各種檢索數(shù)據(jù)均存放在此
log_db
搜索日志數(shù)據(jù)庫,用于存放搜索日志相關(guān),用于實現(xiàn)相關(guān)搜索、搜索建議、拼音搜索等
在 PHP-SDK
中,索引管理由類型為 XSIndex 的對象所維護。在 XS 項目中,通過讀取 XS::index 屬性來獲取索引管理對象,然后展開各種操作,而不是自行創(chuàng)建對象。后面章節(jié)中 的相關(guān)測試代碼如果沒有特別編寫,其中的$index
均為通過類似以下的方式獲取的索引對象:
require '$prefix/sdk/php/lib/XS.php';$xs = new XS('demo'); // 建立 XS 對象,項目名稱為:demo$index = $xs->index; // 獲取 索引對象
索引的維護包括數(shù)據(jù)修改/更新、數(shù)據(jù)刪除、添加數(shù)據(jù)等操作,由后面的篇幅分開詳細講解。
默認使用的索引庫名稱為 db
,對應(yīng)到服務(wù)端的 $prefix/data/$name/db
,一般開發(fā)時不需要 關(guān)注這個本質(zhì)。但如果您的索引數(shù)據(jù)庫相當(dāng)大,希望對索引庫進行適當(dāng)?shù)姆指?,可以自命名新的索引庫?在搜索時可以使用XSSearch::addDb 進行多庫并行搜索。
// 比如把當(dāng)前索引更新到名稱為 db2 的庫中$index->setDb('db2'); // 在檢索時同時搜索 db, db2 的作法,具體參考搜索的有關(guān)章節(jié)...$search->addDb('db2')->setQuery(...)->search();
有必要指出的是,出于性能優(yōu)化設(shè)計,所有的索引操作(包含添加、刪除、修改文檔)均是異步的 行為。也就是說在 PHP-SDK
的相關(guān) API
返回后,只是說明已經(jīng)將索引變動提交到操作隊列中, 而并不是已經(jīng)立即更新到磁盤上的索引數(shù)據(jù)庫文件。因此,搜索結(jié)果將不能立即體現(xiàn)出您的變動。
但請放心,這個時間差我們已經(jīng)控制在非常合理的范圍內(nèi),通常是若干秒。
Note: 特別說明,索引清空是同步操作,立即生效。如果確實有必要,您可以以使用 Indexer的
--flush
選項來強制刷新索引。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: