2011-02-10 55 views
1

我認爲在我的一個項目中使用Sphinx搜索,所以我有幾個與它相關的問題。與SphinxSE和RT索引有關的一些問題

  1. 當使用SphinxSE和RT索引時,SphinxSE表中的每個UPDATE或INSERT都會更新索引,對嗎?無需調用索引器或任何東西?
  2. 我可以在兩個標籤(用戶輸入的文檔關鍵字)和內容上進行搜索,併爲標籤匹配提供更多相關性嗎?如果可能我該如何實現標籤搜索(現在我將它們放在單獨的表中,例如倒排索引)
  3. 對於fillter屬性,最好是將它們的副本保存在SphinxSE表或fillter中,使用常規的mysql我有文件表嗎?

在此先感謝!

回答

3

好的,我終於明白事情是如何與獅身人面像工作。

  1. 您不能直接插入或更新SphinxSE表。相反,您在連接到SphinxQL時(直接使用sphinx守護進程)使用INSERT/REPLACE。
  2. 隨着1.10,你可以添加多個FullText可搜索字段。我添加了標題,標籤和內容。而查詢給予標題更多的權重,然後標記,然後內容如下所示: SELECT SQL_NO_CACHE * FROM sphinx_docs WHERE query = 'a lot of keywords;weights=3,2,1;'; 我使用SQL_NO_CACHE來告訴mysql不要緩存這個結果,因爲在接下來的調用中我無法獲得數量從獅身人面像返回的行(SHOW STATUS LIKE 'sphinx_total_found'

  3. 最好是讓sphinx做所有的排序,填充和使用mysql來加入你需要更多信息的表。

此外,我不得不說,我試過很多次的與SphinxSE插件添加到MySQL沒有成功(無盡的等待化妝小時),所以我切換到MariaDB的5.2.4其中包括與SphinxSE存儲引擎。