ข้ามไปที่เนื้อหาหลัก

Alfresco กับการ Search ภาษาไทย

เนื่องด้วยการ Search ถือเป็นหัวใจสำคัญของงาน ECM เลยก็ว่าได้ แต่ Alfresco ณ ปัจจุบันยังไม่รองรับการ Search ด้วยภาษาไทย แต่อย่างว่า Opensource เมื่อเรารู้ว่ามันใช้ Lucene เป็น engine ในการค้นหาเอกสาร เราก็เลยแงะไปยังตัว lucene เองพบว่ามีคนส่ง Patch ในการตัดคำไทยไปให้กับ lucene เรียบร้อยแล้ว โดยคุณสัมพันธ์นั่นเอง วิธีการ Config ให้ Alfresco ตัดคำไทยได้ผมสรุปออกมาเป็นขั้นตอนได้ดังนี้ครับ
  • ไปเพิ่ม Locale ให้ Alfresco รู้จัก ใน tomcat/shared/classes/alfresco/extension/web-client-config-custom.xml ตรง tag <languages> เพิ่ม <language locale="th_TH">Thai</language>
  • เข้าไป directory: tomcat/webapps/alfresco/WEB-INF/classes/alfresco/model แล้วทำการ copy file dataTypeAnalyzers_fr.properties หรือไฟล์อื่นก็ได้ เปลี่ยนชื่อเป็น dataTypeAnalyzers_th.properties แล้วเปิดไฟล์ขึ้นมาแก้ไขให้เป็น
d_dictionary.datatype.d_text.analyzer=org.apache.lucene.analysis.th.ThaiAnalyzer
d_dictionary.datatype.d_content.analyzer=org.apache.lucene.analysis.th.ThaiAnalyzer
    • หลังจากนั้นเมื่อทำการ login ให้เลือก language เป็น Thai
    เพียงเท่านี้ Alfresco ของเราก็สามารถเก็บ index เป็นภาษาไทยและสามารถค้นหาเอกสารที่เป็นภาษาไทยได้แล้วครับ

    ความคิดเห็น

    1. ขอบคุณค่าาา ติดตามตลอดเลย เขียนเรื่อง Alfresco ให้อ่านเยอะๆนะคะ เพิ่งจะเริ่มใช้ กำลังงงอยู่เลย ^^

      ตอบลบ
    2. ไม่ระบุชื่อ5:07 PM

      ณ ตอนนี้ โดย Default Alfresco สามารถ search เป็นภาษาไทยได้ระดับหนึงถ้าเป็นตัวเต็มอย่างเช่น

      หาเอกสารชื่อ "ประชุม.txt" ด้วยคำว่า "ประชุม"

      แต่ถ้าเป็น "ประชุมและสัมมนา.txt" จะไม่สามารถใช้คำว่า "ประชุม" ค้นหาได้

      ลองใช้วิธีที่โพสแล้ว ก็ยังหาแบบข้อหลังไม่ได้นะคะ ถ้ายังไงจะพอมีวิธีอื่นที่ใช้ search ด้วยภาษาไทยบ้างไหมค่ะ?

      ตอบลบ
    3. สบายแระ
      ขอบคุณครับ :)

      ตอบลบ
    4. ในการตัดคำไทยตามที่ต้องการนั้นเราต้องทำการแก้ไขตัว Analyzer ของ Lucene ครับ เนื่องจากตัวที่เค้าให้มามี Dictionary เพียงไม่กี่คำ จึงทำให้การตัดคำไม่ค่อยดีเท่าที่ควรครับ แล้วผมจะมาเขียนวิธีการ implement อีกครั้งครับ ช่วงนี้งานรัดตัวและห่างหายจาก Alfresco ไปนานครับ ไว้กลับมาจะมีบทความตามมาอีกหลายตัวครับ

      ตอบลบ
    5. ไม่ระบุชื่อ4:15 PM

      ใช้วิธีการนี้ในเวอร์ชั่น 4.0.e ได้หรือไม่ครับ

      ตอบลบ

    แสดงความคิดเห็น

    โพสต์ยอดนิยมจากบล็อกนี้

    Spring Roo vs Grails

    Spring Roo หรือ Grails ดี ถ้าต้องเลือกระหว่างสองตัวนี้จะเลือกอะไรดี คำตอบแบ่งออกได้เป็นสองส่วน ส่วนแรกคือภาษาที่ถนัด หากใครเขียน Java อยู่แล้วไม่อยากเปลี่ยนก็ควรจะเลือก Spring Roo หากใครต้องการ magic ที่มากับ Dynamic Language ก็คิดว่าน่าจะใช้ Grails มากกว่า ส่วนที่สองคือ ความเร็วในการพัฒนาเนื่องจาก magic ที่มาจากภาษา Groovy ทำให้เราพัฒนา Application ได้เร็วกว่าภาษา Java (แต่อันนี้ก็แล้วแต่ความถนัก หากถนัด Java มากๆ ก็อาจจะเร็วกว่าก็ได้) แต่ส่วนที่คิดว่าเร็วกว่าแน่ๆ คือมันจะ Generate Method ส่วนใหญ่ให้ในขณะ Runtime เช่น findBookById() ซึ่งจะไม่มีโค้ดในส่วนนี้แต่จะเป็นการ Generate ให้เองจากตัว Framework แต่หากใช้ Spring Roo เราต้องมานั่งเขียน Method ส่วนนี้เอง ข้อดี ข้อเสีย Grails อย่างที่รู้ว่า Groovy นั้นจะ Generate Method ระหว่าง Runtime ให้และยังเป็นภาษา Script แม้จะมีการ Compile ให้เป็น Bytecode ของจาวาแล้วก็ตาม แต่ Performance ก็จะด้อยกว่า Pure Java อยู่ดี Spring Roo จะช้าในช่วง Develop time แต่ขณะ Runtime จะมี Performance ดีกว่า Grails เนื่องจากไม่มีส่วนที่ต้องสร้างขึ้นระหว่าง ...

    Compact your eclipse 4.x interface and make it looks better in Ubuntu 13.04

    It has been a long time I haven't used Ubuntu since it has some issues about my laptop driver. Yesterday I decided to format and install Ubuntu 13.04. It seems everything work well with a little bit effort to fix some driver problems. Therefore I am as Java developer I cannot avoid to use eclipse as my default IDE (personal preference) but after I installed Eclipse Kepler (4.3). There is an ugly theme with weird gradient, let say it looks worse than in Windows, so I search for the solution, eventually I got one solution that we need to change the theme in eclipse back to "Classic" theme (Window->Preferences->General->Appearance) in my opinion it looks better than in . Another problem is eclipse layout is not compact as in Windows nor as same as former version (3.x). The solution to fix this is create a file .gtkrc-2.0 in your home directory with the following content . style "gtkcompact" { GtkButton::default_border={0,0,0,0} GtkButton::default_...