ស្វែងយល់ពី Full Text Search នៅក្នុង MySQL (វគ្គ២)

ក្នុងអត្ថបទមុន បានបង្ហាញពីកំណត់ កែប្រែ និងលុប FULLTEXT នៅក្នុង Column របស់តារាង (Table) ។ បន្ថែមលើស ពីនេះ នៅក្នុងអត្ថបទនេះដែរ នឹងបង្ហាញលំអិត ចំពោះការប្រើប្រាស់ប្រភេទនៃ Full Text Search និមួយៗ រួមមាន Boolean Full Text Search, Natural Language Search និង Query Expansion

ជាដំបូង ត្រូវយល់ពី Syntax ជាមុនសិន៖

MATCH (column_1, column_2,...) AGAINST (expression[search_modifier])

១. Boolean Full Text Search

ដើម្បីដំណើរការស្រាវជ្រាវព័ត៏មាន ដែលមានភាពស្មុគស្មាញ MySQL បង្កើតនូវ Boolean Full Text Search ដែលប្រើប្រាស់ Boolean Operator ដោយដាក់ IN BOOLEAN MODE  បន្ថែមនៅក្នុង AGAINST  ក្នុងគោលបំណងបញ្ជាក់អត្ថន័យ ពិសេស នៅខាងចុងនៃ Search String។

SELECT * FROM table_name WHERE MATCH(col1, col2)
AGAINST('search terms' IN BOOLEAN MODE)

ឧទាហរណ៍៖ នៅក្នុងតារាង (Table) users មានទិន្នន័យ ៤ records ដូចខាងក្រោម៖

១.១ ស្វែងរកទិន្នន័យនៃ address column មាន ពាក្យថា “Phnom” ក្នុង Rows  ដោយប្រើ IN BOOLEAN MODE

SELECT name, address 
FROM `users` 
WHERE MATCH(address) 
      AGAINST('Phnom' IN BOOLEAN MODE)

លទ្ធផល នឹងបង្ហាញ ៤ Records ដូចខាងក្រោម៖

១.២ ស្វែងរកទិន្នន័យ នៃ address column ដែលមានពាក្យ “Phnom” និង “Khan” ក្នុង Rows ដោយប្រើ Boolean Operator (+)  ។

SELECT name, address 
FROM `users` 
WHERE MATCH(address) 
      AGAINST('+Phnom +Khan' IN BOOLEAN MODE)

លទ្ធផល នឹងបង្ហាញ ៣ Record ដូចរូបខាងក្រោម៖

១.៣ ស្រាវជ្រាវទិន្នន័យ ដែល address column មានពាក្យ “Phnom Penh” តែមិនមានពាក្យថា “Khan” ក្នុង Rows ដោយប្រើ Boolean Operator (-)

SELECT name, address 
FROM `users` 
WHERE MATCH(address) 
      AGAINST('+Phnom -Khan' IN BOOLEAN MODE)

លទ្ធផល នឹងបង្ហាញតែ ១ Record ដូចខាងក្រោម៖


១.៤ ស្វែងរកទិន្នន័យនៃ address column ដែលមានឃ្លា “Sangkat Steung Mean Chey” ដោយប្រើ Boolean Operator (“”)

SELECT name, address 
FROM `users` 
WHERE MATCH(address) 
      AGAINST('"Sangkat Steung Mean Chey"' IN BOOLEAN MODE)

លទ្ធផល នឹងបង្ហាញ ២ Records ដូចខាងក្រោម៖

១.៥ ស្វែងរកទិន្នន័យនៃ address column ដែលមានឃ្លា “Sangkat Steung Mean Chey”  មានពាក្យ Khan និង Phnom ដោយបន្ថែម Boolean Operator () ។

SELECT name, address 
FROM `users` 
WHERE MATCH(address) 
      AGAINST('"Sangkat Steung Mean Chey" +(Khan Phnom)' IN BOOLEAN MODE)

លទ្ធផល នឹងបង្ហាញ ៤ Records ដូចខាងក្រោម៖

១.៦ ស្វែងរកទិន្នន័យនៃ address column ដែលមានពាក្យ ផ្តើមដោយ Kha ដែលអាចជា Khan ឬ Khang ដោយប្រើ Boolean Operator (*)

ELECT name, address 
FROM `users` 
WHERE MATCH(address) 
      AGAINST('Kha*' IN BOOLEAN MODE)

លទ្ធផល នឹងបង្ហាញ ៣ Records ដូចខាងក្រោម៖

 

ចែករំលែក​អត្ថបទនេះទៅកាន់៖

Exit mobile version