ย้ายบล็อกไปที่ bact.cc แล้วนะครับ

พ.ร.บ.คอมพิวเตอร์
หยุด ร่างพ.ร.บ.คอมพิวเตอร์
พื้นที่เก็บข้อมูลออนไลน์ ฟรี 2GB จาก Dropbox (sync กับ Windows, Linux, Mac, iPhone, Android ฯลฯ ได้)
Showing posts with label MySQL. Show all posts
Showing posts with label MySQL. Show all posts

2008-04-08

generatedata.com - data generator

Generate test data instantly, just clicks.

GenerateData.com by Benjamin Keen

เอาไว้สร้างข้อมูลเยอะ ๆ สำหรับทดสอบ ใช้ง่ายมาก ๆ เลือกเอาท์พุตได้หลายรูปแบบ - ถ้าอยากเอาไปใช้ออฟไลน์ก็มีซอร์สโค้ดให้ด้วย

technorati tags: , ,

2008-02-24

MySQL Thai full-text parser plug-in idea

MySQL 5.1 allows us to use a customized full-text parser.

poakpong ถามเรื่อง fulltext ในฐานข้อมูล MySQL ว่าเอาไว้ทำอะไร

ก็คือมันเอาไว้ระบุไว้ที่ช่องข้อมูล (field) ประเภทข้อความ (char, varchar, text) เพื่อบอกให้ MySQL มันทำดัชนี (index) สำหรับการค้นหาแบบ full-text search น่ะ

ที่เคย ๆ เขียนกัน เวลาจะหาอะไรใน MySQL เราก็จะใช้ LIKE "%คำที่หา%"
โดย LIKE มันจะวิ่งไปเปรียบเทียบข้อความในแต่ละช่องข้อมูล ทำนอง regular expression

ส่วนกรณี full-text search ใน MySQL จะใช้คำสั่ง MATCH (ชื่อฟิลด์) AGAINST (คำที่หา)
ซึ่งมันจะค้นจากดัชนีคำที่ MySQL ทำไว้ล่วงหน้า ซึ่งการค้นหาที่ตัวดัชนีแทนที่จะไปหาในตัวข้อความทั้งหมดนี้ ก็จะทำให้การค้นหามีประสิทธิภาพดีกว่า

อย่างไรก็ตาม การใช้ full-text search นี้ ก็ยังมีปัญหาสำหรับภาษาไทย นั่นก็คือ ตัวทำดัชนีคำน่ะ มันยังไม่รองรับภาษาไทย-ภาษาที่ต้องตัดคำก่อน (มีรองรับภาษาจีน/ญี่ปุ่นนิดหน่อย)

full-text search จึงยังใช้ไม่ได้สำหรับภาษาไทย ต้องใช้ LIKE กันไปก่อน

ใน MySQL รุ่น 5.1 (ตอนนี้ยังเป็น Release Candidate อยู่) ปัญหานี้ดูเหมือนจะมีทางออกได้ (ถ้ามีคนลงแรง) เพราะ MySQL 5.1 เปิดช่องให้เขียน plug-in มาเสริมการทำงานได้ ซึ่งรวมถึง full-text parser plug-in ด้วย

full-text parser นี่ มีเอาไว้สร้างรายการคำเพื่อเอาไปใส่ในดัชนี

ถ้าเรามี full-text parser ที่สร้างรายการคำไทยได้ เราก็จะสามารถใช้ฟังก์ชั่น full-text search บน MySQL กับภาษาไทยได้ทันที ที่ระดับฐานข้อมูลเลย (แน่นอน เราต้องมีสิทธิลงปลั๊กอินที่ว่าลงในเซิร์ฟเวอร์ฐานข้อมูลด้วย ซึ่งในกรณีเราไปเช่าเว็บโฮสต์คนอื่นใช้ ก็คงลำบากหน่อย แต่ถ้าเป็นเครื่องเราเอง ก็ไม่มีปัญหา)

ไลบรารีตัดคำไทยที่ใช้งานได้นั้น เราก็มีแล้ว เช่นใน libthai หรือจะใช้ ICU/libicu ก็ได้ แม้ทั้งหมดนี้จะต้องมีการปรับแต่งเพื่อการสร้างดัชนีด้วย (ลักษณะของคำที่ตัดออกมาเพื่อจัดหน้ากระดาษ เพื่อทำดัชนี เพื่อการแปล เพื่องานที่ต่างกัน ก็มีลักษณะแตกต่างกัน) แต่คิดว่าน่าจะอยู่ในวิสัยที่จะทำได้

เป็นโครงงานจบการศึกษา - senior project - Google Summer of Code - ประกวด NSC ... ??

(ภาษาโปรแกรม C หรือ C++)

(อาจจะมีคนทำอยู่/เสร็จแล้วก็ได้ ... เหมือน อ.ธวัชชัย กับ พี่สัมพันธ์ เคยสนใจ (แต่ตอนนั้นโครงสร้างพื้นฐานยังไม่อำนวยให้แก้ไขได้ในลักษณะปลั๊กอินเช่นนี้) ... ใครรู้อะไรก็แจ้งข่าวหน่อยครับ ;) )

technorati tags: , , ,

2007-04-02

silly mistake - -"

นั่งหาบั๊กมาสองวัน ผิดตรงไหนฟะ

เพิ่งจะเจอตะกี้

ผมพยายามต่อ MySQL จาก Java ไม่ได้ซักทีแฮะ เอ ก่อนหน้านี้ (ก่อนฟอร์แมตเครื่อง) ยังใช้ได้นี่นา

ใช้ JDBC driver มาตรฐานจาก MySQL เอง คอมไพล์ก็ผ่านดี ไม่มีปัญหา

ปรากฎว่า เราเรียกใช้ jar ผิดตัว - ใส่ชุดไลบรารีถูก แต่ในชุดไลบรารีนั้น ระบุไฟล์ jar ผิดตัว
มันก็เลยหาคลาส (com.mysql.jdbc.Driver) ไม่เจอไง เฮ้อ~
(ถ้าใช้ jar อันที่ผิด จะเจอคลาสนี้ตอนเขียน (ทดสอบโดยการกด Ctrl-space เพื่อให้ NetBeans มันแสดงแพ็คเกจ/คลาสต่าง ๆ ให้ดู) แต่ไม่เจอตอนรันนะ)

อันที่ไปใช้ผิด ชื่อ mysql-connector-java-5.0.4-bin-g.jar
ส่วนอันที่ถูก ชื่อ mysql-connector-java-5.0.4-bin.jar

งี่เง่ามาก ๆ - -"

technorati tags: ,

2005-11-14

Charset in MySQL 5

MySQL 5 - Connection Character Sets and Collations

มีปัญหา จะใช้ PEAR::MDB2 อ่านข้อความ utf-8 จาก MySQL (โพสต์ไว้ที่ Narisa.com) ปรากฏว่าข้อความ(ภาษาไทย, ภาษา non-Latin1)กลายเป็น ??? หมดเลย

หาในเน็ตอยู่นาน ปรากฏว่า ต้องเพิ่มคำสั่งนี้เข้าไปก่อนจะเริ่ม query SELECT

$db->query("SET CHARACTER SET utf8");

แต่ทำแบบนี้ก็กลายเป็นว่า ไม่รู้จะใช้ MDB2 (database abstraction layer) ไปทำไม เพราะ query นี้มันมีเฉพาะ MySQL ! :(

มีคนแจ้ง “บั๊ก” (ขอเพิ่มฟีเจอร์) ไว้แล้ว

2005-09-01

Thai full-text search in MySQL - Draft Propsal

สถาบันส่งเสริมการจัดการความรู้เพื่อสังคม (สคส.) กำลังจะให้ทุนเพื่อพัฒนาความสามารถในการค้นหาข้อความภาษาไทย (Thai full-text search) ในระบบฐานข้อมูลโอเพนซอร์ส MySQL โดยมีงบประมาณ 200,000 บาท

โดยตอนนี้ มีร่างข้อเสนอสำหรับโครงการแล้ว และคณะทำงานเห็นว่า น่าจะรับฟังความเห็นของสาธารณะเสียหน่อย เกี่ยวกับร่างข้อเสนอนี้

ใครสนใจ ก็ลองอ่านดู แล้วแสดงความคิดเห็นกันได้ที่เว็บบอร์ด LTN ห้อง General ที่กระทู้นี้ครับ — ขอบคุณครับ :)