Sphinx/字符集、大小寫轉換和轉換表
來自站長百科
當建立索引時,Sphinx從指定的數據源獲得文本文檔,將文本分成詞的集合,再對每個詞做大小寫轉換,于是“Abc”,“ABC”和“abc”都被當作同一個詞(word,或者更學究一點,詞項term)
為了正確完成上述工作,Sphinx需要知道:
- 源文本是什么編碼的;
- 那些字符是字母,哪些不是;
- 哪些字符需要被轉換,以及被轉換成什么.
這些都可以用 charset_type 和 charset_table 選項為每個索引單獨配置. charset_type 指定文檔的編碼是單字節(jié)的(SBCS)還是UTF-8的。 charset_table 指定了字母類字符到它們的大小寫轉換版本的對應表,沒有在這張表中出現的字符被認為是非字母類字符,并且在建立索引和檢索時被當作詞的分割符來看待。
注意,盡管默認的轉換表并不包含空格符 (ASCII code 0x20, Unicode U+0020) , 但是這么做是 完全合法的. 這在某些情況下可能有用,比如在對tag云構造索引的時候,這樣一個用空格分開的詞集就可以被當作一個單獨的查詢項了.