EN

ReadyPlanet Search Engine Help

Boolean Operators

คือสัญลักษณ์พิเศษที่ช่วยเพิ่มประสิทธิภาพในการค้นหา จะประกอบไปด้วย “AND”,”+”,”OR”,”NOT” และ “-”

”OR”

”OR” เป็น Operators สำหรับการเชื่อมคำ 2 คำที่อยู่ระหว่าง ”OR” โดย ”OR” จะทำการค้นหาคำที่เท่ากับคำ 2 คำที่เชื่อมกัน หรือ คำใดคำหนึ่งที่อยู่ระหว่าง ”OR” เป็นลักษณะของการ Union กันระหว่างสองคำ นอกจากนี้เรายังใช้สัญลักษณ์ “||” แทนได้

เช่น ต้องการค้นหา “jakarta apache” หรือ “jakarta” ใช้คำสั่งดังนี้

"jakarta apache" jakarta

หรือ

"jakarta apache" OR jakarta

AND

AND เป็นoperator สำหรับค้นหาเอกสารที่จะต้องมีคำ 2 คำที่ต้องการค้นหาในเอกสารที่ใดที่หนึ่งในเอกสาร เป็นลักษณะของการ Intersection กันระหว่างสองคำ ซึ่งโดยปรกติถ้าเราไม่ใส่ ”AND” ระบบสืบค้นจะทำการเชื่อมคำให้อัตโนมัติเหมือน กับว่าเราใส่ ”AND”เช่น

ถ้าเราต้องการค้นหาคำ "jakarta apache" and "Apache Lucene"

"jakarta apache" AND "Apache Lucene"

+

เป็นoperator สำหรับบังคับว่าคำที่อยู่หลัง สัญลักษณ์ “+” จะต้อง มีอยู่ที่ใดที่หนึ่งในเอกสารที่ต้องการค้นหา

เช่นต้องการค้นหาเอกสารที่ประกอบด้วย “jakarta” และก็ประกอบด้วย “lucene” ใช้ได้ดังนี้

+jakarta lucene

NOT

NOT เป็น operator สำหรับตัดเอกสารที่ประกอบไปด้วยคำที่ตามหลัง NOT ออกไป ซึ่งเราสามารถใช้สัญลักษณ์ “!” แทนคำว่า NOT ได้ เช่น ต้องการค้นหาเอกสารที่ประกอบด้วย “jakarta apache” แต่ไม่เอา “Apache Lucene” ใช้คำสั่งดังนี้

"jakarta apache" NOT "Apache Lucene"

operator ตัวนี้ไม่สามารถใช้กับคำหรือวลีเพียงหนึ่งคำได้ เช่น "

NOT "jakarta apache"

-

เป็น operator ยกเว้นการค้นหา คือจะตัดเอกสารที่ประกอบด้วยคำที่อยู่หลังสัญลักษณ์ “-”

เช่นถ้าเราต้องการค้นหา “jakarta apache” แต่ไม่เอา “Apache Lucene” ใช้คำสั่งดังนี้

"jakarta apache" -"Apache Lucene"

Terms (คำศัพท์)

การค้นหาได้ถูกแบ่งออกเป็น terms และ operators ซึ่ง terms มี 2 รูปแบบคือ คำศัพท์เพียงหนึ่งคำ(Single Terms) กับ วลี(Phrases)

Single Terms ก็คือคำเพียงหนึ่งคำ เช่น “test” หรือ “hello”

Phrases ก็คือกลุ่มคำ ที่ถูกครอบด้วย double quotes เช่น “hello dolly”

คำศัพท์หลายๆ คำจะถูกเชื่อมต่อกันด้วย boolean operators ซึ่งจะอยู่ในรูปของการค้นหาที่ซับซ้อน (ดูต่อด้านล่าง)

หมายเหตุ:การใช้ตัววิเคราะห์ในการค้นหาคำในรูปแบบของคำศัพท์หรือวลี มีความสำคัญมากซึ่งจะต้องเลือกตัววิเคราะห์ที่ไม่มีผลกระทบกับคำศัพท์หรือ วลีที่ค้นหา

Term Modifiers

การแก้ไขคำศัพท์ที่ใช้ในการค้นหาก็เพื่อเป็นการกำหนดขอบเขตการค้นหาของระบบสืบค้น โดยมีวิธีการค้นหาด้วยกันหลายวิธีดังนี้

Wildcard Searches

เป็นการค้นหาที่สนับสนุนการค้นหาอักขระตัวเดียวหรือหลายๆ อักขระรวมกันซึ่งก็คือคำศัพท์(Terms )นั่นเอง (แต่จะไม่สนับสนุนการค้นหาแบบวลี)

สัญลักษณ์ที่ใช้ในการค้นหาอักขระตัวเดียว คือ “?”

สัญลักษณ์ที่ใช้ในการค้นหาอักขระหลายตัว คือ “*”

การค้นหาอักขระตัวเดียว wildcard Searches จะค้นหาอักขระทุกๆ อักขระที่สามารถนำมาใส่แทน “?” แล้วอ่านเป็นคำได้ เช่น “text” หรือ “test”

วิธีการใช้ดังนี้  te?t

การค้นหาอักขระหลายตัว wildcard Searchesจะค้นหาอักขระตั้งแต่ 0 ตัวหรือมากกว่า เช่นต้องการค้นหาคำว่า test,tests หรือ tester

ใช้วิธีการได้ดังนี้ test*

นอกจากนี้เรายังสามารถใช้ * เพื่อแทนการค้นหาอักขระตัวเดียวได้โดย

ใช้วิธีการดังนี้ te*t

หมายเหตุ: เราไม่สามารถวางสัญลักษณ์ “?” หรือ “*” ไว้หน้าสุดของคำที่ต้องการจะค้นหาได้

Fuzzy Searches

เป็นการค้นหาที่อยู่บนพื้นฐานของ Levenshtein Distance หรือ Edit Distance algorithm ซึ่งจะใช้สัญลักษณ์ “~” ใส่ลงไปทีท้ายสุดของคำศัพท์ที่ต้องการค้นหา เช่น ถ้าต้องการค้นหาคำที่สะกดคำคล้ายๆกับคำว่า “roam”

วิธีการใช้ ดังนี้ roam~

ผลที่ได้จากการค้นหาคำนี้ก็จะได้คำว่า foam และ roam

แต่ในระบบสืบค้นนี้ได้มีการเพิ่มคุณพารามิเตอร์เข้ามาอีกเพื่อให้ผู้ใช้ ได้สามารถความใกล้เคียงของคำได้มากขึ้น โดยค่าที่ใส่เข้าไปมีค่าอยู่ระหว่าง 0-1 โดยค่าที่ใกล้เคียง 1 มากที่สุดจะเป็นคำที่คล้ายกับคำที่ต้องการค้นหามากทุกที่สุด

เช่น roam~0.8

แต่โดยทั่วไปถ้าหากไม่ระบุพารามิเตอร์ ก็จะมีค่าเป็น 0.5 ให้อยู่แล้ว

Proximity Searches

เป็นการค้นหาคำที่อยู่ในช่วงที่กำหนด โดยใช้สัญลักษณ์ “~” ต่อท้ายวลีที่ต้องการค้นหา เช่น ต้องการค้นหา “apeche” และ “jakarta” ที่จะต้องมีคำพวกนี้ 10 คำของแต่ละเอกสาร

วิธีใช้ดังนี้ “jakarta apache”~10

Range Searches

เป็นการค้นหาโดยค่าของคำในเอกสารที่เราต้องการค้นหา ซึ่งค่าของคำนั้นจะต้องอยู่ระหว่างค่าที่เรากำหนด โดยจะเป็นการกำหนดแบบครอบคลุม(Inclusive)หรือแบบเฉพาะเจาะจง(exclusive)ก็ ได้ เช่น

mod_date:[20020101 TO 20030101]

ระบบจะทำการค้นหา mod_date ในเอกสารที่มีค่าอยู่ระหว่าง 20020101 และ 20030101 แต่โดยรวมแล้ว Range Searches ไม่ได้มีไว้สำหรับการหาแบบ date ดังนั้นเราจึงควรใช้วิธีการนี้ในการค้นหาแบบที่ไม่ใช่ date ดังนี้

title:{Aida TO Carmen}

ระบบค้นหาค่าของ title ทุกๆคำที่อยู่ในเอกสาร ที่ค่าของ title อยู่ระหว่าง Aida และ Carman แต่จะไม่รวม Aida และ Carman

โดยที่รูปแบบการกำหนดแบบ inclusive จะใช้สัญลักษณ์แทนโดย “[]” และ exclusive จะใช้สัญลักษณ์แทนโดย “{}”

Boosting a Term

เป็นตัวกำหนดระดับความสัมพันธ์ของการค้นหาคำศัพท์ในเอกสารที่ต้องการ โดยจะใช้สัญลักษณ์ “^” แล้วตามด้วยตัวเลข(the boost factor)ที่ท้ายคำศัพท์ที่เราต้องการค้นหา โดยที่ระดับตัวเลขที่มากความสัมพันธ์ของคำศัพท์ก็จะมากตามไปด้วย เช่นถ้าคุณต้องการค้นหา

jakarta apache

แล้วเราต้องการคำศัพท์ jakarta ให้มีความสัมพันธ์กันมากขึ้น ก็โดยใช้สัญลักษณ์ “^” ซึ่งก็จะอยู่ในรูปแบบดังนี้

jakarta^4 apache

นอกจากนี้เรายังสามารถใช้ Boosting a Term กับวลีได้ด้วย โดยมีลักษณะดังนี้

"jakarta apache"^4 "Apache Lucene"

แต่ถ้าเราไม่กำหนดปรกติ Boosting a Term จะมีค่าเท่ากับ 1 โดยที่ค่า the boost factor สามารถน้อยกว่า 1 ได้ แต่ไม่สามารถเป็นจำนวนลบได้

Grouping

จะใช้ () เป็นตัว Group เพื่อเป็นการแยกย่อยการค้นหา ซึ่งจะมีประโยชน์อย่างมากเมื่อเราต้องการควบคุมการใช้ operator หลายๆ ตัวในการค้นหา เช่น

ต้องการค้นหา "jakarta" or "apache" และ “website” คำสั่งดังนี้

(jakarta OR apache) AND website

เพื่อเป็นการจำกัดความสับสนและให้แน่ใจว่าเอกสารที่เราต้องการค้นหานั้น มีคำว่า “website” อยู่แน่นอนและนอกจากนี้จะต้องประกอบไปด้วย jakarta หรือ apache ในเอกสาร

Escaping Special Characters

สัญลักษณ์พิเศษที่ระบบค้นหาจะไม่สามารถไปใช้เป็นคำค้นหาได้ มีดังนี้

+ - && || ! ( ) { } [ ] ^ " ~ * ? : \

แต่ถ้าผู้ใช้ต้องการใช้สัญลักษณ์พิเศษดังกล่าวเพื่อการค้นหาจะต้องใส่สัญลักษณ์ “\” นำหน้าตลอด เช่น (1+1):2 ต้องเขียนดังนี้

\(1\+1\)\:2