มาช่วยกัน!
สำหรับปัญหาการค้นหาของ Windows ข้อเสนอแนะของฉันมีสองสิ่ง:
- อ่านเอกสารAQS (Advanced Query Syntax)เพื่อให้คุณรู้ว่าอักขระพิเศษทั้งหมดทำอะไร
- รู้ว่า Windows Search จะแปลงคิวรีของคุณเป็น AQS ที่แม่นยำและหากคุณไม่เจาะจงในแบบสอบถามของคุณ Windows จะเดาว่า AQS คุณหมายถึงอะไรจริง ผลลัพธ์ที่ได้น่าประหลาดใจ!
ก่อนอื่นมีข้อมูลเบื้องต้นเกี่ยวกับ AQS
ตามค่าเริ่มต้นคุณสมบัติของไฟล์สตริง (ชื่อไฟล์ผู้แต่ง ฯลฯ ) จะค้นหาด้วยคำCOP_WORD_STARTSWITH
$<
ใด ๆ(คั่นด้วยและอื่น ๆ ) ที่ขึ้นต้นด้วยคำค้นหาของคุณ คุณสมบัติอื่น ๆ ที่ไม่ใช่สตริง (วันที่เป็นต้น) ค้นหาด้วยหรือจับคู่แบบตรงตามค่าเริ่มต้น (ไม่มีไวลด์การ์ดและเป็นตัวอักษร)spaces , - _ () []
COP_EQUAL
=
*
?
ประการที่สองถ้าคุณกำลังค้นหาในใด ๆสถานที่จัดทำดัชนีแล้วทุกสถานที่ที่ไม่ได้จัดทำดัชนีในการค้นหาของคุณจะไม่แสดง
ประการที่สามคลิกที่แถบที่อยู่เพื่อดูว่า AQS ค้นหา Windows จริงด้วย คุณสามารถเพิกเฉยที่ตั้ง crumbs และชื่อที่แสดงได้: มันจะถูกเข้ารหัสเป็นเปอร์เซ็นต์ดังนั้นถอดรหัสบนเว็บไซต์เช่นhttps://www.url-encode-decode.com/
ประการที่สี่ไม่มีเอกสาร*
และ?
ประพฤติตนโดยไม่คาดเดาใน AQS เว้นแต่ว่าอยู่ใน~
COP_DOSWILDCARDS
ข้อความค้นหา (หมายถึงคำที่ไม่ใช่คำที่ขึ้นต้นด้วยและการ์ดเสริม*
หรือ?
ถูกตีความ) โดยปกติการค้นหาของ Windows จะแปลงการค้นหาเป็น~
แบบสอบถาม ตัวอย่างเช่นดูเหมือนว่าไวลด์การ์ด**
และ?
ด้วยตัวอักษรและตัวเลขค้นหาคุณสมบัติสตริงด้วย~
แต่**
ไม่มีตัวอักษรและตัวเลขค้นหาอะไรเลย นอกจากนี้ยังเดียว*
ไม่ใช่คำสั่งจะถือว่าเป็นสัญลักษณ์แทนด้วย~
COP_WORD_STARTSWITH
$<
มาวิเคราะห์คำค้นหากัน
(
AQS search-ms:displayname=Search Results in Users&crumb=&crumb=location:C:\Users
แบบง่ายcrumb=
ดีไม่มีการอ้างอิง(
เป็นตัวดำเนินการจัดกลุ่มสำหรับเมื่อคุณใช้AND
หรือOR
คุณจัดกลุ่มอะไรดังนั้น Windows คิดว่าคุณหมายถึงกลุ่มไม่มีอะไรค้นหาทุกอย่าง
*(*
AQS crumb=
การค้นหา windows ส่วนใหญ่ที่เริ่มต้นด้วย*
windows จะพยายามแปลงเป็นcrumb=~~query_term
(มีการค้นหา) *
ถือว่าเป็นเรื่องปกติในแบบสอบถามที่มี อย่างไรก็ตามในกรณีนี้คุณใช้ wild card เป็นกลุ่มที่ไม่มีอะไรเลยดังนั้น Windows จะค้นหากลุ่มของไม่มีอะไรเลย (หรือทุกอย่าง!)
"("
AQS crumb=System.Generic.String:"("
ค้นหาคำปรึกษาสำหรับวลีที่แน่นอน (ทั้งคำหรือทรัพย์สินควรจะตรง) และอักขระตามตัวอักษรยกเว้นสำหรับ*
, ?
และกลายเป็น""
"
สิ่งนี้จะค้นหาคำที่ขึ้นต้นด้วย(
แต่เนื่องจากคำไม่ได้(
เป็นเพียงการค้นหาคุณสมบัติที่มีเพียง(
*"("*
AQS อันcrumb=Rating:(>=1 <13) OR System.Generic.String:** System.Generic.String:"("*
นี้บ้า แต่ Windows Search พยายามแปลงคำนำหน้า*
ตามด้วยอักขระพิเศษบางตัวในการจัดอันดับดาว 1-13 คือ 1 ดาว โปรดทราบจากการทดสอบของฉัน**
โดยไม่ใช้ตัวอักษรและตัวเลขใด ๆ ก่อนหรือหลังค้นหาโดยไม่ต้องใช้อะไรแทนการใช้ wild card และไม่สามารถคาดเดาได้
แบบสอบถามแบบเต็มนี้หมายถึง
(คะแนน 1 ดาวหรือ Word ที่เริ่มต้นด้วยอะไร) (
และคุณสมบัติที่เป็นเพียง *
จะไม่ตรงกับตัวละครอื่น ๆ ใด ๆ (
เพราะทรัพย์สินทั้งหมดจะต้องมีการ
ย่อมันก็หมายความว่าไฟล์ 1 ดาวที่เรียกว่า (
**
ในแบบสอบถามแสดงให้เห็นว่าฉันไม่ใช่ดาวดวง(
เดียวสำหรับไฟล์ แต่เมื่อเปลี่ยน**
ไปเป็น***
แล้วก็กลับ**
ให้ผลลัพธ์ที่คาดไว้ไม่มีผลลัพธ์ ( **
คาดเดาไม่ได้)
คำตอบอื่น ๆ
~="("
AQS crumb=System.Generic.String:~="("
สิ่งนี้ใช้ไม่ได้ดูเหมือนว่า windows จะไม่พบสิ่งใดหากปริมาณการค้นหาเข้มข้นเกินไป filename:~="("
ทำงานได้ดี เป็นหลักค้นหาชื่อไฟล์ที่มีเพียง(
บางแห่ง
"*(*"
AQS crumb=filename:~~"*(*" OR System.Generic.String:"*(*"
สิ่งนี้ใช้ได้ผล ชื่อไฟล์มี*(*
กับบัตรป่าหรือคำทรัพย์สินใด ๆ (
ที่เริ่มต้นด้วยบัตรป่าและมี หมายเหตุทั้ง~=
และ~~
ค่าเฉลี่ยประกอบด้วย