2011-09-27 116 views

回答

2

正如sphinx documentation part about real-time indexes

實時索引(或RT指數爲簡潔起見),發現是一個新的後端,可以讓你插入,更新或刪除在飛行文件(行)。

所以要隨時更新索引你只需要做出像

{INSERT | REPLACE} INTO index [(column, ...)] 
VALUES (value, ...) 
[, (...)] 
+0

所以,你在哪裏運行該SQL語句一樣?我正在閱讀文檔,但他們的所有示例都顯示它正在被mysql查詢。 – lockdown

+0

你可以通過你最喜歡的MySQL客戶端發佈 –

2

查詢,以擴大對安妮的答案 - 如果你使用SQL指標,它不會自動更新。您可以在每次更改後管理重新索引的過程 - 但這可能很昂貴。解決這個問題的一個方法是擁有一切的核心索引,然後是具有相同結構的增量索引(僅索引更改)(這可以通過布爾值或時間戳列來完成)。

這樣,您就可以在超常規的基礎上重新索引delta索引(這個更小,因此速度更快),然後不太經常地處理core和delta(但仍然最好至少這樣做日常)。

但是,除此之外,新的RT指數值得關注 - 你仍然需要自己更新事物,而且它沒有綁定到數據庫,所以它是一個不同的思維模式。另外:RT索引沒有SQL索引所具有的所有功能,因此您需要確定哪些更重要。

3

答案是否定的,你需要告訴獅身人面像重新索引你的分貝。

有你需要知道的一些步驟和要求:

  1. 主要和增量都要求
  2. 你需要索引你的主索引首先運行。
  3. 第一次運行後,可以通過旋轉折射率差(以確保服務正在運行,並在網絡上的數據可以在時間中使用)
  4. 在你走之前進一步步驟中,您需要創建一個表格來標記你的「最後索引行」。最後的索引行ID可用於下一個索引增量並將delta合併到main中。
  5. 您需要將您的增量索引合併到主索引。 因爲裏面的獅身人面像文件http://sphinxsearch.com/docs/current.html#index-merging
  6. 重新啓動獅身人面像服務。

    提示:創建您自己的程序,可以使用C#或其他語言執行索引。你可以嘗試windows的任務時間表也可以。

這裏是我的conf:

source Main 
{ 
type   = mysql 

sql_host  = localhost 
sql_user  = root 
sql_pass  = password 
sql_db   = table1 
sql_port  = 3306 # optional, default is 3306 
sql_query_pre = REPLACE INTO table1.sph_counter SELECT 1, MAX(PageID) FROM table1.pages; 
sql_query  = \ 
    SELECT pd.`PageID`, pd.Status from table1.pages pd 
    WHERE pd.PageID>=$start AND pd.PageID<=$end \ 
    GROUP BY pd.`PageID` 

sql_attr_uint  = Status 

sql_query_info  = SELECT * FROM table1.`pages` pd WHERE pd.`PageID`=$id 
sql_query_range  = SELECT MIN(PageID),MAX(PageID)\ 
       FROM tabl1.`pages` 
sql_range_step  = 1000000 
} 


source Delta : Main 
{ 
sql_query_pre = SET NAMES utf8 

sql_query = \ 
    SELECT PageID, Status from pages \ 
    WHERE PageID>=$start AND PageID<=$end 

sql_attr_uint  = Status 

sql_query_info  = SELECT * FROM table1.`pages` pd WHERE pd.`PageID`=$id 
sql_query_range  = SELECT (SELECT MaxDoc FROM table1.sph_counter WHERE ID = 1) MinDoc,MAX(PageID) FROM table1.`pages`; 
sql_range_step  = 1000000 
} 


index Main 
{ 
source   = Main 
path   = C:/sphinx/data/Main 
docinfo   = extern 
charset_type  = utf-8 
} 


index Delta : Main 
{ 
    source = Delta 
path = C:/sphinx/data/Delta 
charset_type = utf-8 
} 
+1

如果你通過了--rotate參數,你不需要重新啓動searchd。 – Christian

相關問題