Sphinx命令列工具

2021-07-27 18:27:49 字數 3046 閱讀 3204

indexer: 收集要被檢索的資料 

indexer [options] [indexname1 [indexname2 […]]] 

使用者可以在sphinx.conf中設定好可能有哪些索引(index),因此在呼叫indexer的時候,最簡單的情況下,只需要告訴它你要簡歷哪個(或者哪些)索引就行了。

假設 sphinx.conf 包含了兩個索引的具體設定, sph_yd 和 sph_yd_delta, ,你可以這麼呼叫: $ indexer mybigindex 或 $ indexer mysmallindex mybigindex 或全部索引
$ indexer —all

在配置檔案sphinx.conf裡面,可以為資料指定乙個或多個索引。然後呼叫indexer來對其中乙個特定的索引進行重新編制索引操作,或者是重新編制所有索引——不限於某乙個或同時全部,使用者總是可以指定現有索引的乙個組合。

–config (簡寫為-c ) 使 indexer 將指定的檔案file作為配置檔案。 預設indexer是會在安裝目錄(例如e.g. /usr/local/sphinx/etc/sphinx.conf ,如果sphinx被安裝在 /usr/local/sphinx)中尋找sphinx.conf,若找不到,則繼續在使用者在shell中呼叫indexer時所在的目錄中尋找。建立自己的sphinx.conf檔案,然後把它做為引數傳給indexer。例如:

$ indexer –config /home/myuser/sphinx.conf myindex 

–all 使indexer對sphinx.conf檔案中列出的所有索引進行重新編制索引,這樣就不必一次列出每個索引的名字了。 

$ indexer –config /home/myuser/sphinx.conf –all 

–rotate 用於輪換索引。對新的文件建立索引時幾乎肯定都確保搜尋服務仍然可用,除非你有信心在搜尋服務停止同時不給你的使用者帶來困擾。–rotate建立乙個額外的索引,並列於原有索引(與原有索引在相同目錄,簡單地在原有索引檔名基礎上加乙個.new字尾)。一旦這個額外的索引建立完成,indexer給searchd發乙個sighup訊號做為通知。searchd會嘗試將索引重新命名(給原有索引加上.old字尾,而把帶有.new字尾的新索引改為原名,以達替換之目的),繼而用新的檔案重啟服務。依 seamless_rotate 選項設定之不同,在新索引可用之前可能有一點小的延遲。用法示例:

$ indexer –rotate –all 

–quiet 使indexer不輸出除錯誤(error)外的任何東西。 

$ indexer –rotate –all –quiet 

–noprogress 不隨時顯示進度資訊 

$ indexer –rotate –all –noprogress 

–buildstops 像建立索引一樣掃瞄索引對應的資料來源,產生乙個最終會被加入索引的詞項的列表。換種說法,產生乙個用這個索引可以檢索的詞項的列表。注意,這個選項使indexer並不真正更新指定的索引,而只是「假裝」建在立索引似地處理一遍資料,包括執行sql_query_pre或者sql_query_post選項指定的查詢。outputfile.txt文 件最終會包含乙個詞表,每行乙個詞,按詞頻排序,高頻在前。引數n指定了列表中最多可出現的詞項數目,如果n比索引中全部詞項的數目還大,則返回的詞項數 就是全部詞項數。客戶端應用程式利用這種字典式的詞表來提供「您是要搜尋。。。嗎?(did you mean…)」的功能,通常這個選項與下面要講的–buildfreqs選項一同使用。示例: 

$ indexer myindex –buildstops word_freq.txt 1000 

這條命令在當前目錄產生乙個word_freq.txt檔案,內含myindex這個索引中最常用的1000個詞,且最常用的排在最前面。注意,當指定了多個索引名或使用了–all選項(相當於列出配置檔案中的所有索引名)時,這個選項對其中的最後乙個索引起作用。 

–buildfreqs 與 –buildstops一同使用 (如果沒有指定 –buildstops 則–buildfreqs也被忽略). 它給–buildstops產 生的詞表的每項增加乙個計數資訊,即該詞在索引中共出現了多少次,這在建立停用詞(stop words,出現特別普遍的詞)表時可能有用。在開發「您是要搜尋。。。嗎?(did you mean…)」的功能時這個選項也能幫上忙,因為有了它你就能知道乙個詞比另乙個相近的詞出現得更頻繁的程度。示例: 

$ indexer myindex –buildstops word_freq.txt 1000 –buildfreqs 

這個命令將產生乙個類似於上一條命令的word_freq.txt ,但不同在於,每個詞的後面都會附加乙個數字,指明在指定的索引中這個詞出現了多少次。 

–merge 用於在物理上將多個索引合併,比方說你在使用「主索引+增量索引」模式,主索引很少改變,但增量索引很頻繁地重建,而–merge選項允許將這兩個索引合而為一。操作是從右向左進行的,即先考察src-index的內容,然後在物理上將之與dst-index合併,最後結果留在dst-index裡。用偽**說就是dst-index += src-index。示例: 

$ indexer –merge main delta –rotate 

上例中main是主索引,很少更動,delta是增量索引,頻繁更新。上述命令呼叫indexer將delta的內容合併到main裡面並且對索引進行輪換。 

–merge-dst-range 在合併索引的時候執行範圍過濾。具體地說,向目標索引 (是 –merge 的乙個引數,如果沒有指定 –merge, 則–merge-dst-range 也被忽略)合併時,indexer會對將要合併進去的文件做一次過濾,只有通過過濾才能最終出現在目標索引中。舉乙個實用的例子,假設某個索引有乙個「已刪除(deleted)」屬性,0代表「尚未刪除」。這樣乙個索引可以用如下命令進行合併: 

$ indexer –merge main delta –merge-dst-range deleted 0 0 

這樣標記為已刪除的文件(值為1)就不會出現在新生成的目標索引中了。這個選項可以在命令列上指定多次,以便指定多個相繼的過濾,這樣乙個文件要想合併到最終的目標索引中去,就必須依次通過全部這些過濾。(ps:這個過濾只針對main索引,delta 索引中的資料不會去過濾,delta要過濾請在sql_query中做好過濾處理) 

命令列工具

在wince6.0 中,在vs2005 的 build 選單中,有乙個 advanced build commands 其中有很多編譯選項 sysgen 相當於執行命令 blddemo q 一般第一次編譯或者是 改變了 catalog 中的item 的時候,就用這個了。clean sysgen 相當...

命令列工具

執行 scws h 可以看到詳細幫助說明。usage scws options i input o output i string file 要切分的字串或檔案,如不指定則程式自動讀取標準輸入,每輸入一行執行一次分詞 o file 切分結果輸出儲存的檔案路徑,若不指定直接輸出到螢幕 c charse...

c mysql命令列 mysql 命令列工具

1 mysql命令選項 2 mysql命令 3 mysql日誌 4 mysql服務端幫助 5 執行mysql指令碼 6 使用技巧 mysql是乙個能夠編輯輸入行的簡單sql shell,支援互動式和非互動式訪問。使用互動式時,查詢結果以ascii表的格式展示。使用非互動式時,查詢結果以製表符分隔的格...