Tính năng diễn giải cụm từ tìm kiếm của Cloud Search tự động diễn giải các toán tử và bộ lọc trong cụm từ tìm kiếm của người dùng, đồng thời chuyển đổi những phần tử đó thành một cụm từ tìm kiếm có cấu trúc dựa trên toán tử. Hoạt động diễn giải truy vấn sử dụng các toán tử được xác định trong giản đồ, cùng với các tài liệu được lập chỉ mục, để suy luận ý nghĩa truy vấn của người dùng. Tính năng này cho phép người dùng tìm kiếm bằng số lượng từ khoá tối thiểu nhưng vẫn nhận được kết quả chính xác.
Kết quả thực tế mà người dùng nhìn thấy phụ thuộc vào độ tin cậy của quá trình diễn giải truy vấn. Độ tin cậy dựa trên một số yếu tố, bao gồm cả vị trí xuất hiện của các chuỗi truy vấn trong tài liệu được lập chỉ mục. Một chuỗi, chẳng hạn như tên của diễn viên "Tom Hanks", xuất hiện nhất quán trong một trường lược đồ có tên là actors
sẽ mang lại độ tin cậy cao hơn. Cùng một chuỗi ("Tom Hanks") xuất hiện trong một đoạn văn, thay vì trường giản đồ, có thể dẫn đến độ tin cậy thấp hơn. Trong trường hợp có độ tin cậy cao, người dùng chỉ thấy kết quả từ quá trình diễn giải truy vấn. Trong trường hợp độ tin cậy thấp hơn, kết quả từ việc diễn giải cụm từ tìm kiếm sẽ được kết hợp với kết quả tìm kiếm từ khoá thông thường.
Ví dụ về nội dung diễn giải cụm từ tìm kiếm
Giả sử bạn có một nguồn dữ liệu (chẳng hạn như 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à kết quả diễn giải.

Với truy vấn mẫu này, nội dung diễn giải truy vấn sẽ thực hiện những việc sau:
Phân tích cú pháp lược đồ và xác định rằng các đối tượng cấp cao nhất trong nguồn dữ liệu được phân loại là
objecttype:movies
. Tính năng diễn giải cụm từ tìm kiếm hiện biết rằng "phim" trong cụm từ tìm kiếm là một loại đối tượng.Quét các tài liệu trong nguồn dữ liệu, kết hợp với giản đồ, để xác định vị trí xuất hiện của chuỗi "action". Nếu chuỗi chủ yếu xuất hiện trong một trường nguồn dữ liệu "thể loại" cụ thể, thì quá trình diễn giải truy vấn có độ tin cậy rằng "hành động" là một giá trị thuộc tính cho thuộc tính "thể loại" như được xác định trong giản đồ. Nếu chuỗi chủ yếu xuất hiện trong ngữ cảnh của các đoạn nội dung, thì mức độ tin cậy của việc diễn giải truy vấn sẽ giảm.
Nội dung diễn giải cụm từ tìm kiếm thu được 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 bật cho tất cả khách hàng Cloud Search mà không cần làm gì thêm. Tuy nhiên, để diễn giải truy vấn một cách tối ưu, bạn nên cấu trúc giản đồ theo hướng dẫn trong tài liệu này.
Cấu trúc giản đồ để hỗ trợ việc diễn giải truy vấn
Bạn nên cấu trúc giản đồ để đảm bảo rằng bạn có thể 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 của Cloud Search sử dụng objectDefinitions
và propertyDefinitions
trong một giản đồ để diễn giải cụm từ tìm kiếm của người dùng và điều chỉnh kết quả. Để tối đa hoá lợi ích của các phần tử lược đồ này, bạn nên tạo tên hiển thị trực quan bằng cách sử dụng displayLabel
cho tên thuộc tính, objectDisplayLabel
cho tên đối tượng và operatorName
cho toán tử.
Giản đồ sau đâ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,
"isRepeatable": true,
"isFacetable": true,
"textPropertyOptions": {
"retrievalImportance": { "importance": "HIGHEST" },
"operatorOptions": {
"operatorName": "genre"
}
},
"displayOptions": {
"displayLabel": "Category"
}
},
...
]
}
]
}
Trong ví dụ trước:
Định nghĩa đối tượng phim có một "Phim"
objectDisplayLabel
.genre propertyDefinition có một
operatorName
"thể loại" và mộtdisplayLabel
"Danh mục".
Những tên hiển thị này cho phép Cloud Search diễn giải các cụm từ tìm kiếm sau:
- "phim hành động", "phim hành động theo thể loại" hoặc "phim hành động theo thể loại" được hiểu là
genre:action object:movies
. - "phim thuộc thể loại hành động hoặc giật gân" được hiểu là
objecttype:movies genre:(action OR thriller)
. - "phim hành động" được hiểu là
genre:action objecttype:movies
. - "comedy category movies" (phim thuộc danh mục hài) được hiểu là
genre:comedy objecttype:movies
.
Bật tính năng diễn giải ngày, số và sắp xếp
Bạn nên xác định lessThanOperatorName
và greaterThanOperatorName
(được chỉ định trong IntegerOperatorOptions
) cho tất cả các thuộc tính ngày và số. Các chế độ cài đặt này cho phép tự động diễn giải ngày và số. Ngoài ra, để bật tính năng sắp xếp các diễn giải, hãy đặt lựa chọn isSortable
cho các thuộc tính ngày và số. Sơ đồ sau đây cho thấy cách bật các lựa chọn này.
{
"objectDefinitions": [
{
"options": {
"displayOptions": {
"objectDisplayLabel": "Films"
}
},
"propertyDefinitions": [
{
"name": "runtime",
"isReturnable": true,
"isSortable": true,
"integerPropertyOptions": {
"orderedRanking": "DESCENDING",
"minimumValue": {
"value": 10
},
"maximumValue": {
"value": 500
},
"operatorOptions": {
"operatorName": "runtime",
"lessThanOperatorName": "runtimelessthan",
"greaterThanOperatorName": "runtimegreaterthan"
}
},
"displayOptions": {
"displayLabel": "Length"
}
},
{
"name": "releasedate",
"isReturnable": true,
"isSortable": true,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "releasedate",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
}
}
]
}
]
}
Trong ví dụ trước:
- Thuộc tính bằng số
runtime
đề cập đến thời lượng của một bộ phim.runtimelessthan
vàruntimegreaterthan
được đặt cho thuộc tính này. - Thuộc tính ngày
releaseDate
đề cập đến thời điểm phát hành một bộ phim tại rạp chiếu phim.releasedbefore
vàreleasedafter
được đặt cho tài sản này.
Các chế độ cài đặt này cho phép Cloud Search diễn giải các cụm từ tìm kiếm sau:
- Giả sử năm hiện tại là 2019, thì "phim phát hành trong năm nay" sẽ được hiểu là
objecttype: movies releasedafter:2019-1-1 releasedbefore:2019-12-31
. - Giả sử tuần là tuần thứ ba của tháng 3, thì "các bộ phim phát hành tuần trước" được hiểu là
objecttype: movies releasedafter:2019-3-10 releasedbefore:2019-3-16
- "movies with runtime less than 90" (phim có thời lượng dưới 90 phút) được hiểu là
objjecttype: movies runtimelessthan:90
. - Giả sử năm là 2019, "phim phát hành năm nay và có thời lượng hơn 120 phút" sẽ được hiểu là
releasedafter:2019-1-1 releasedbefore:2019-12-31 objecttype:movies runtimegreaterthan:120
. - "sort movies by release date" (sắp xếp phim theo ngày phát hành) sẽ lọc theo "objecttype: movies" và kết quả được trình bày sẽ được sắp xếp theo ngày phát hành với thứ tự sắp xếp mặc định là tăng dần.
Bật tính năng diễn giải toán tử dành riêng
Bạn cũng có thể sử dụng các toán tử tích hợp dành riêng type
, before
, after
, objecttype
để tăng cường khả năng diễn giải truy vấn. Khi lập chỉ mục một tài liệu, hãy làm như sau:
Điền sẵn trường
updateTime
trongItemMetadata
để sử dụng toán tửbefore
vàafter
. Các chế độ cài đặt này cho phép Cloud Search diễn giải truy vấn theo những cách sau:- "movies from last week" (phim từ tuần trước) sẽ liệt kê tất cả các bộ phim được cập nhật trong chỉ mục vào tuần trước.
- "movies before jan 2019" (phim trước tháng 1 năm 2019) sẽ liệt kê tất cả các bộ phim được lập chỉ mục trước tháng 1 năm 2019.
Điền vào trường
mimeType
trongItemMetadata
để sử dụng tính năng tự động phát hiện loại. Cụm từ tìm kiếm "video hành động" sẽ liệt kê tất cả các tài liệu phim hành động có loại mime làapplication/mp4
,application/mpeg4
,application/x-shockwave-flash
,video/
vàapplication/vnd.google-apps.video
.
Các hạn chế về việc diễn giải cụm từ tìm kiếm
Tính năng diễn giải cụm từ tìm kiếm có các hạn chế sau.
- Tính năng diễn giải cụm từ tìm kiếm chỉ hoạt động đối với các ACL nguồn dữ liệu sau:
- Tất cả tài liệu đều được công khai trong miền (mọi người trong miền đều có thể truy cập).
- Tất cả tài liệu đều ở chế độ công khai đối với nguồn dữ liệu (mọi người có quyền truy cập vào ACL nguồn dữ liệu).
- Đa số tài liệu trong nguồn dữ liệu có cùng ACL (tất cả tài liệu đều kế thừa ACL từ cùng một mục chứa) mà không có người đọc bổ sung nào được xác định.
- Nếu nhiều toán tử lược đồ có cùng một giá trị, thì việc diễn giải giá trị đó thành ý định của toán tử cho một truy vấn sẽ phụ thuộc vào hệ số độ tin cậy tổng thể do hệ thống diễn giải truy vấn trả về. Ví dụ: giả sử bạn có các thuộc tính
priority
vàseverity
có cùng tên toán tử được xác định trong giản đồ. Giả sử cả hai toán tử đều có thể có các giá trị 0, 1, 2 hoặc 3. Trong ví dụ này, "0" trong một truy vấn có thể đề cập đến giá trị toán tử chopriority
hoặcseverity
. Các giá trị này không rõ ràng và mức độ tin cậy thấp hơn. - Theo mặc định, tính năng diễn giải cụm từ tìm kiếm của Cloud Search sẽ chuyển giá trị trường thành chữ thường khi diễn giải cụm từ tìm kiếm, ngoại trừ những toán tử văn bản được xác định bằng các lựa chọn
exactMatchWithOperator
. - Toán tử
source
không được hỗ trợ trong các truy vấn. - Hệ thống không diễn giải những cụm từ tìm kiếm kết hợp các cụm từ dựa trên toán tử và các cụm từ văn bản tự do. Ví dụ: truy vấn "p0 priority cases severity:s0" sẽ không được hỗ trợ vì "p0 priority cases" là một cụm từ văn bản tự do trong khi "severity:s0" là một cụm từ dựa trên toán tử.
- Chiến lược diễn giải cụm từ tìm kiếm luôn kết hợp kết quả được diễn giải với kết quả thông thường (không được diễn giải, được xếp hạng theo mức độ liên quan). Thao tác này không thay thế toàn bộ trang kết quả.