2017-04-08 52 views
2

UNACCENT函數可以刪除字符以外的變音符。但是,在我的情況下,它只能刪除帶1個變音符的字符,例如Postgres UNACCENT具有超過1個變音符的字符

  • 超人
  • AAA

對於具有多於1個附加符號字符,UNACCENT不執行任何操作,例如用於

  • Hồ
  • 一個
  • PHO

有沒有辦法讓Postgres的剝離從這些人物的口音?

感謝

回答

4

PostgreSQL的unaccent模塊不使用Unicode正常化,但只有一個簡單的搜索和替換字典。默認詞典unaccent.rules不包含這些越南語字符,因此沒有任何操作。

雖然你可以創建你自己的unaccent字典。 As explained in the documentation

  1. 與像

    內容
    ầ a 
    Ầ A 
    ồ o 
    Ồ O 
    
  2. 移動vietnamese.rules到該文件夾​​$SHAREDIR/tsearch_data/(通常/usr/share/postgresql/tsearch_data

  3. 運行功能

    SELECT unaccent('vietnamese', 'Hồ ầ phố'); 
    --    ^~~~~~~~~~~~~ 
    
  4. 創建一個文本文件 vietnamese.rules
+0

我害怕創建自己的規則,因爲我沒有訪問數據庫計算機,但我想沒有避免它。 – Khanetor

相關問題