Screen Shot 2557-05-14 at 11.54.39 AM

หลังจากทำการทดลองหาวิธีการตัดคำภาษาไทย
จาก blog ที่ผ่านมาคือ Elasticsearch ทดสอบตัดคำภาษาไทยแบบง่ายๆ
ส่วน blog นี้ มาดูว่าการใช้งานภาษาไทยใน ElasticSearch นั้นทำอย่างไร
รวมทั้งการใช้งานร่วมกับภาษา Go
ซึ่งใช้งานผ่าน Client library ชื่อว่า Elastigo
มีขั้นตอนการพัฒนาดังต่อไปนี้

เริ่มต้นด้วยการสร้าง Index ของ ElasticSearch ก่อน

สิ่งที่เราต้องการสร้างคือ index ชื่อว่า data
ด้วยคำสั่งดังนี้

$curl -XPUT http://localhost:9200/data

ต่อจากนั้นทำการสร้างเอกสาร (Document) ชื่อว่า address
สำหรับเก็บข้อมูลที่อยู่ ซึ่งประกอบไปด้วย ชื่อจังหวัด (province_name)
ด้วยคำสั่งดังนี้

curl -XPUT http://localhost:9200/data/address/_mapping -d '{
"address": {
   "properties": {
       "province_name": {"type": "string", "analyzer": "thai"}
   }
}
}’

เมื่อทุกอย่างเรียบร้อยแล้ว สามารถเข้าไปตรวจสอบ
ใน Dashboard ของ ElasticSearch ซึ่งสามารถดู configuration ที่เราทำไว้ดังนี้

Screen Shot 2557-05-24 at 5.53.40 PM

และทำการ configuration ของ Index data ดังนี้

Screen Shot 2557-05-24 at 5.56.21 PM

ทำการทดสอบการตัดคำภาษาไทยกันหน่อย

โดยคำที่ใช้ทดสอบคือ ประเทศไทย จะตัดได้ 2 คำ คือ ประเทศ และ ไทย
ซึ่งทำให้เรารู้ว่า ElasticSearch มันสามารถตัดคำภาษาไทยได้แล้ว ดังรูป

Screen Shot 2557-05-24 at 6.08.21 PM

เมื่อทุกอย่างเรียบร้อยแล้ว เรามาทำการเพิ่มข้อมูลเข้ามายัง ElasticSearch ด้วย Go กันดีกว่า

โดย library ที่ใช้งานคือ Elastigo ( เขียน code เองก็ได้นะ เพราะว่ามันคือการเรียกใช้งานผ่าน REST APIs )
สามารถติดตั้งด้วยคำสั่ง

$go get github.com/mattbaird/elastigo

ทำการเขียน code สำหรับการเพิ่มข้อมูลเข้าไปยังระบบได้ดังนี้

ทำการ run โปรแกรมของเราซะ

$go run index.go

ต่อมาทำการทดลองค้นหาข้อมูลใน ElasticSearch ด้วยคำว่า ไทย ใน Dashboard ดังนี้

Screen Shot 2557-05-24 at 6.11.56 PM หรือสามารถเขียน code การค้นหาด้วยภาษา Go ดังนี้

เพียงเท่านี้ก็สามารถใช้งาน ElasticSearch ร่วมกับภาษา Golang เรียบร้อยแล้ว

Reference Websites
Client Library for ElasticSearch :: Elastigo
Go-ElasticSearch
http://exploringelasticsearch.com/searching_data.html