Cloud Search การตีความการค้นหาจะแปลงโอเปอเรเตอร์และตัวกรองในการค้นหาของผู้ใช้เป็นการค้นหาที่มีโครงสร้างและอิงตามโอเปอเรเตอร์โดยอัตโนมัติ ฟีเจอร์นี้ใช้โอเปอเรเตอร์ที่กำหนดไว้ในสคีมาและเอกสารที่จัดทำดัชนีเพื่ออนุมานความตั้งใจในการค้นหา ซึ่งช่วยให้ผู้ใช้ค้นหาด้วยคีย์เวิร์ดน้อยที่สุดและได้ผลลัพธ์ที่แม่นยำ
การนำเสนอผลลัพธ์จะขึ้นอยู่กับ ความน่าเชื่อถือ ความน่าเชื่อถือจะเพิ่มขึ้นเมื่อสตริงการค้นหาปรากฏในช่องสคีมาที่เฉพาะเจาะจงอย่างสม่ำเสมอ (เช่น "Tom Hanks" ในช่อง actors) ความน่าเชื่อถือจะลดลงเมื่อสตริงปรากฏในข้อความทั่วไป ความน่าเชื่อถือสูงจะแสดงเฉพาะผลลัพธ์ที่ตีความแล้ว ในขณะที่ความน่าเชื่อถือต่ำจะผสานผลลัพธ์ที่ตีความแล้วกับผลลัพธ์คีย์เวิร์ดมาตรฐาน
ตัวอย่างการตีความการค้นหา
พิจารณาฐานข้อมูลที่มีข้อมูลภาพยนตร์ รูปที่ 1 แสดงตัวอย่างการค้นหาและผลการตีความ
ตัวอย่างการตีความการค้นหามีดังนี้
- กำหนดจากสคีมาว่าออบเจ็กต์ระดับบนสุดคือ
objecttype:movies - สแกนเอกสารเพื่อระบุตำแหน่งที่คำว่า "action" ปรากฏ หากคำนี้ปรากฏในช่อง
genreเป็นหลัก ความน่าเชื่อถือจะเพิ่มขึ้นว่าคำนี้เป็นค่าพร็อพเพอร์ตี้ของช่องดังกล่าว
ผลการตีความคือ:
actor:"tom hanks" genre:action objecttype:movies
การตีความการค้นหาเป็นไปโดยอัตโนมัติสำหรับผู้ใช้ทุกคน แต่คุณสามารถเพิ่มประสิทธิภาพได้โดยการจัดโครงสร้างสคีมาตามที่อธิบายไว้ในส่วนต่อไปนี้
จัดโครงสร้างสคีมาสำหรับการตีความการค้นหา
การเพิ่มประสิทธิภาพสคีมาจะช่วยให้คุณได้รับประโยชน์จากการตีความการค้นหา
เปิดใช้การตีความชื่อที่แสดง
การตีความการค้นหาใช้ objectDefinitions และ propertyDefinitions เพื่อตีความการค้นหา สร้างชื่อที่แสดงที่ใช้งานง่ายโดยใช้
displayLabel
สำหรับพร็อพเพอร์ตี้
objectDisplayLabel
สำหรับออบเจ็กต์ และ operatorName สำหรับโอเปอเรเตอร์
ตัวอย่างนี้แสดงชื่อที่แสดงที่ใช้งานง่ายสำหรับออบเจ็กต์ภาพยนตร์
{
"objectDefinitions": [{
"name": "movie",
"options": {
"displayOptions": { "objectDisplayLabel": "Films" }
},
"propertyDefinitions": [{
"name": "genre",
"isReturnable": true,
"textPropertyOptions": {
"operatorOptions": { "operatorName": "genre" }
},
"displayOptions": { "displayLabel": "Category" }
}]
}]
}
ชื่อที่แสดงเหล่านี้ช่วยให้ตีความได้ดังนี้
- "action movies" ->
genre:action object:movies - "movies with genre action or thriller" ->
objecttype:movies genre:(action OR thriller) - "comedy category movies" ->
genre:comedy objecttype:movies
เปิดใช้การตีความวันที่ ตัวเลข และการจัดเรียง
กำหนด lessThanOperatorName และ greaterThanOperatorName ใน
IntegerOperatorOptions
สำหรับพร็อพเพอร์ตี้วันที่และตัวเลขทั้งหมด หากต้องการเปิดใช้การจัดเรียง ให้ตั้งค่า isSortable
ตัวอย่างนี้จะเปิดใช้ตัวเลือกต่อไปนี้
{
"objectDefinitions": [{
"propertyDefinitions": [
{
"name": "runtime",
"isSortable": true,
"integerPropertyOptions": {
"operatorOptions": {
"operatorName": "runtime",
"lessThanOperatorName": "runtimelessthan",
"greaterThanOperatorName": "runtimegreaterthan"
}
}
},
{
"name": "releasedate",
"isSortable": true,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "releasedate",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
}
}
]
}]
}
การตั้งค่าเหล่านี้ช่วยให้ตีความได้ดังนี้
- "movies released this year" ->
objecttype:movies releasedafter:2019-1-1 releasedbefore:2019-12-31 - "movies with runtime less than 90" ->
objecttype:movies runtimelessthan:90
เปิดใช้การตีความโอเปอเรเตอร์ที่สงวนไว้
ใช้โอเปอเรเตอร์ในตัว เช่น type, before, after และ objecttype ดังนี้
- ป้อนข้อมูล
updateTimeในItemMetadataเพื่อใช้beforeและafter - ป้อนข้อมูล
mimeTypeในItemMetadataเพื่อให้ระบบตรวจหาโดยอัตโนมัติ เช่น "action videos" จะแสดงเอกสารที่มีประเภท MIME ของวิดีโอ
ข้อจำกัดของการตีความการค้นหา
- ใช้ได้กับ ACL ของแหล่งข้อมูลต่อไปนี้เท่านั้น
- สาธารณะในโดเมน
- สาธารณะในแหล่งข้อมูล
- เอกสารส่วนใหญ่แชร์ ACL ที่รับช่วงมาเดียวกัน
- ชื่อโอเปอเรเตอร์ที่แชร์กัน (เช่น
priorityและseverityใช้ 0-3 เหมือนกัน) จะลดความน่าเชื่อถือ - โดยค่าเริ่มต้น การตีความจะใช้ตัวพิมพ์เล็กสำหรับค่าของช่อง เว้นแต่คุณจะใช้
exactMatchWithOperator - ระบบไม่รองรับโอเปอเรเตอร์
source - ระบบจะไม่ตีความโอเปอเรเตอร์และคำที่เป็นข้อความอิสระรวมกัน (เช่น "p0 cases severity:s0")
- ระบบจะผสานผลลัพธ์เข้ากับผลลัพธ์ที่จัดอันดับตามความเกี่ยวข้องเสมอ