Calm Hill My Random Thoughts

SQLite Full-Text Index with Python 2.7

Text File တွေနဲ့ ရေးထားတဲ့ Contents အများကြီးကို SQLite ရဲ့ Full-Text အနေနဲ့ Index လုပ်ဖို့ရှိတာ File တွေကများလွန်းတာရယ် တကြိမ်တခါအလုပ်လည်း မဟုတ်တာရယ် နောက်ပြီးတော့ လက်နဲ့ Manual လုပ်လို့ မဖြစ်နိုင်တာနဲ့ Python Script တွေရေးပြီးတော့ Index လုပ်တာမှာ Windows အတွက် Python 2.7 မှာပါတဲ့ SQLite က Full-text Index ကိုမသိဘူး ဖြစ်နေရာက စက်ပြောင်းပြီး Linux or Mac ကိုသွားပြီးတော့ အလုပ်လုပ်နေရတယ်။

အချိန်ရတဲ့အခါ လိုက်ရှာကြည့်တော့ Python 2.7 မှာပါတဲ့ SQLite Library ကြောင့်လို့ရှာလို့တွေ့ပြီးတော့ dll file အစားထိုးလိုက်ရင် ရမယ်ဆိုတော့ SQLite Site ကနေ Pre−compiled dll ကို Download လုပ်ပြီးတော့ထည့်တော့ valid dll မဟုတ်ပါဘူးဆိုပြီး Python က အကြီးအကျယ် ပြဿနာ လုပ်ပါတော့တယ်။ အဓိကအကြောင်းက ကိုယ်သုံးနေတဲ့ Python က 64-bits ဖြစ်နေပြီးတော့ SQLite က 32-bits ဖြစ်နေတာ။ SQLite 64-bits dll ကတော့ ဘယ်လိုမှ ရှာလို့မရတာနဲ့ ကိုယ်တိုင်ပဲ Build လုပ်ရတဲ့ အဖြစ်ကိုရောက်တယ်။

တကယ်ကတော့ ရှုပ်ထွေးပွေလီလှတဲ့ Visual Studio တွေနဲ့ မလုပ်ချင်တဲ့အတွက် တတ်နိုင်ရင် Windows အတွက်က ကိုယ်တိုင် Build မလုပ်တာ များပါတယ်။ Dependency သိပ်လည်းမများတဲ့ Program ဖြစ်တဲ့အတွက် SQLite ကိုတော့ Mingw နဲ့အရင်ဆုံး စမ်းပြီးတော့ Build လုပ်ကြည့်လိုက်တာ အဆင်ပြေပြေပဲ Build လုပ်လို့ရပါတယ်။ အရင်ဆုံး SQLite Source တွေကို Download လုပ်ရမယ်။

http://www.sqlite.org/download.html

Source တွေကို တနေရာရာမှာ Extract လုပ်ပြီးရင်တော့ Mingw ထဲကပါလာတဲ့ Msys ကနေ Source Code တွေကို Extract လုပ်ထားတဲ့ Directory ကိုသွား configure & make ဆိုရပါပြီ။

./configure
make

ပြီးသွားရင်တော့ Source Code Directory အောက်မှာ exe ပဲရှာလို့တွေ့မယ်။ File တွေအားလုံးက .libs ဆိုပြီး directory တခုထဲမှာ exe ရော dll ရော intermediate object files တွေရော အားလုံးရှိပါတယ်။ အဲဒီ့အထဲက dll file ကိုကူးယူပြီးတော့ Python Install လုပ်ထားတဲ့ Directory ထဲက DLLs Directory ထဲက SQLite dll နေရာမှာ အစားထိုးပေးလိုက်ရင် Python ထဲမှာ Full-Text Search အလုပ်လုပ်တာ တွေ့ရပါလိမ့်မယ်။