อัปเดต: ฉัน คิดว่า คำถามนี้เกี่ยวข้องกับไวยากรณ์ของ solr โดยทั่วไป และไม่ใช่ Chef โดยเฉพาะ ดังนั้นในขณะที่ฉันพบกับการทำงานร่วมกับ Chef ฉันคิดว่าใครก็ตามที่ทำงานกับ Solr จะต้องประสบกับสิ่งนี้เช่นกัน...
ฉันกำลังทำงานกับแอปพลิเคชันที่สื่อสารกับ API การค้นหาของเซิร์ฟเวอร์ Chef เพื่อค้นหาโหนดเฉพาะ
จาก http://docs.opscode.com/essentials_search.html#special-Characters นี้ ดูเหมือนว่าจะต้องหลีกเลี่ยงอักขระพิเศษจำนวนหนึ่ง
หมายเหตุ: ฉันกังวลเฉพาะกับรูปแบบการจับคู่แบบตรงทั้งหมด ไม่ใช่ ไวด์การ์ด ฉันรู้ว่าสาเหตุที่อักขระเหล่านี้บางตัวเป็นไวด์การ์ด
ต่อไปนี้เป็นรายการในขณะที่เขียนนี้ โดยคัดลอกมาจาก URL ด้านบน:
+ - && | | ! ( ) { } [ ] ^ " ~ * ? : \
เมื่อฉันลองใช้คำสั่ง knife search
ต่างๆ กับอักขระเหล่านี้ ฉันเห็นพฤติกรรมที่ไม่สอดคล้องกัน
สำหรับตัวอย่างต่อไปนี้ ฉันตั้งค่าโหนดที่แท็กด้วย +&|!(){}[]^\"~*?:\\"
คำสั่งเหล่านี้ถูกเรียกใช้จากกล่อง Linux ใน bash shell:
$ knife search node 'tags:+&|!(){}[]^"~*?:\'
ERROR: knife search failed: invalid search query: 'tags:+&|!(){}[]^"~*?:\'
ซึ่งเป็นไปตามที่คาดไว้ เนื่องจากไม่มีอะไรรอดพ้นไปได้ ตอนนี้ ฉันหลีกหนีทุกสิ่งด้วย \
เดียวตามที่เอกสารแนะนำ:
$ knife search node 'tags:\+\&\|\!\(\)\{\}\[\]\^\"\~\*\?\:\\'
ERROR: knife search failed: invalid search query: 'tags:\+\&\|\!\(\)\{\}\[\]\^\"\~\*\?\:\\'
แปลก.
ใครช่วยอธิบายเรื่องนี้ได้บ้าง และอาจแนะนำข้อความค้นหาที่สามารถจับคู่แท็กนั้นได้
ไม่น่าเป็นไปได้ที่ทุกคนจะมีแอตทริบิวต์ที่มีอักขระพิเศษเหล่านั้นทั้งหมด แต่ฉันอยากจะเข้าใจให้ดีขึ้นว่าควรหลีกเลี่ยงอักขระพิเศษอย่างไร
ขอบคุณ!
! ( ) { } [ ] ^ " ~ * ? : \
ทั้งหมดนี้ใช้ได้ผลสำหรับฉัน แต่+ - && | |
ทั้งหมดล้มเหลว - person Display Name is missing   schedule 21.02.2014&&
และ||
จึงถือเป็นอักขระพิเศษ - person hairyhenderson   schedule 21.02.2014