Tính năng diễn giải cụm từ tìm kiếm của Cloud Search sẽ tự động chuyển đổi các toán tử và bộ lọc trong cụm từ tìm kiếm của người dùng thành một cụm từ tìm kiếm có cấu trúc dựa trên toán tử. Tính năng này sử dụng các toán tử được xác định trong giản đồ và các tài liệu được lập chỉ mục để suy luận ý định của truy vấn. Điều này cho phép người dùng tìm kiếm bằng số lượng từ khoá tối thiểu và nhận được kết quả chính xác.
Cách trình bày kết quả phụ thuộc vào mức độ tin cậy. Độ tin cậy tăng lên khi các chuỗi truy vấn liên tục xuất hiện trong các trường lược đồ cụ thể (ví dụ: "Tom Hanks" trong trường actors). Độ tin cậy giảm khi chuỗi xuất hiện trong văn xuôi chung. Độ tin cậy cao chỉ hiển thị kết quả được diễn giải, trong khi độ tin cậy thấp hơn sẽ kết hợp kết quả được diễn giải với kết quả từ khoá tiêu chuẩn.
Ví dụ về nội dung diễn giải cụm từ tìm kiếm
Hãy cân nhắc một cơ sở dữ liệu chứa thông tin về phim. Hình 1 cho thấy một cụm từ tìm kiếm mẫu và cách diễn giải cụm từ đó.
Đối với ví dụ này, nội dung diễn giải cụm từ tìm kiếm:
- Xác định từ giản đồ rằng các đối tượng cấp cao nhất là
objecttype:movies. - Quét tài liệu để xác định nơi xảy ra "hành động". Nếu giá trị này chủ yếu xuất hiện trong trường
genre, thì độ tin cậy sẽ tăng lên rằng đây là giá trị thuộc tính cho trường đó.
Kết quả diễn giải là:
actor:"tom hanks" genre:action objecttype:movies
Tính năng diễn giải cụm từ tìm kiếm được tự động áp dụng cho tất cả người dùng, nhưng bạn có thể tối ưu hoá tính năng này bằng cách cấu trúc giản đồ như mô tả trong các phần sau.
Cấu trúc giản đồ để diễn giải truy vấn
Việc tối ưu hoá giản đồ đảm bảo bạn được hưởng lợi từ tính năng diễn giải truy vấn.
Bật tính năng diễn giải tên hiển thị
Tính năng diễn giải cụm từ tìm kiếm sử dụng objectDefinitions và propertyDefinitions để diễn giải cụm từ tìm kiếm. Tạo tên hiển thị trực quan bằng cách sử dụng displayLabel cho các thuộc tính, objectDisplayLabel cho các đối tượng và operatorName cho các toán tử.
Ví dụ này cho thấy tên hiển thị trực quan cho một đối tượng phim:
{
"objectDefinitions": [{
"name": "movie",
"options": {
"displayOptions": { "objectDisplayLabel": "Films" }
},
"propertyDefinitions": [{
"name": "genre",
"isReturnable": true,
"textPropertyOptions": {
"operatorOptions": { "operatorName": "genre" }
},
"displayOptions": { "displayLabel": "Category" }
}]
}]
}
Những tên hiển thị này cho phép diễn giải như:
- "phim hành động" ->
genre:action object:movies - "movies with genre action or thriller" (phim thuộc thể loại hành động hoặc giật gân) ->
objecttype:movies genre:(action OR thriller) - "comedy category movies" (phim thuộc danh mục hài) ->
genre:comedy objecttype:movies
Bật tính năng diễn giải ngày, số và sắp xếp
Hãy xác định lessThanOperatorName và greaterThanOperatorName trong IntegerOperatorOptions cho tất cả các thuộc tính ngày và số. Để bật tính năng sắp xếp, hãy đặt isSortable.
Ví dụ này cho phép các lựa chọn sau:
{
"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"
}
}
}
]
}]
}
Các chế độ cài đặt này cho phép diễn giải như:
- "movies released this year" (phim phát hành năm nay) ->
objecttype:movies releasedafter:2019-1-1 releasedbefore:2019-12-31 - "movies with runtime less than 90" (phim có thời lượng dưới 90 phút) ->
objecttype:movies runtimelessthan:90
Bật tính năng diễn giải toán tử dành riêng
Sử dụng các toán tử tích hợp như type, before, after và objecttype:
- Điền vào
updateTimetrongItemMetadatađể sử dụngbeforevàafter. - Điền
mimeTypevàoItemMetadatađể tự động phát hiện. Ví dụ: "video hành động" liệt kê các tài liệu có loại MIME video.
Các hạn chế về việc diễn giải truy vấn
- Chỉ hoạt động cho các ACL nguồn dữ liệu sau:
- Công khai trong miền.
- Nguồn dữ liệu công khai.
- Đa số tài liệu dùng chung cùng một ACL được kế thừa.
- Tên toán tử dùng chung (ví dụ: Cả
priorityvàseverityđều sử dụng độ tin cậy thấp hơn (0-3). - Theo mặc định, quá trình diễn giải sẽ sử dụng chữ thường cho các giá trị trường, trừ phi bạn sử dụng
exactMatchWithOperator. - Toán tử
sourcekhông được hỗ trợ. - Kết hợp toán tử và cụm từ văn bản tự do (ví dụ: "p0 cases severity:s0") không được diễn giải.
- Kết quả luôn được kết hợp với kết quả được xếp hạng theo mức độ liên quan.