Tính năng diễn giải truy vấn của Cloud Search tự động diễn giải trong truy vấn của người dùng và chuyển đổi những yếu tố đó thành truy vấn có cấu trúc, dựa trên toán tử. Việc diễn giải truy vấn sử dụng toán tử xác định trong giản đồ, cùng với các tài liệu được lập chỉ mục, để suy ra những gì người dùng truy vấn. Tính năng này cho phép người dùng tìm kiếm mà không cần từ khoá cụ thể mà vẫn thu được kết quả chính xác.
Kết quả thực tế được cung cấp cho người dùng phụ thuộc vào mức độ tin cậy
diễn giải truy vấn. Độ tin cậy được xác định dựa trên một số yếu tố,
bao gồm cả vị trí mà các chuỗi truy vấn xuất hiện trong các tài liệu được lập chỉ mục. Một chuỗi, chẳng hạn như
là tên của diễn viên "Tom Hanks", xuất hiện nhất quán trong một
trường giản đồ có tên actors
sẽ có độ tin cậy cao hơn. Cùng một chuỗi
("Tom Hanks") xuất hiện trong một đoạn, thay vì một trường giản đồ, có thể
thì sẽ có độ tin cậy thấp hơn. Trong trường hợp có mức độ tin cậy cao, chỉ kết quả
từ nội dung diễn giải cụm từ tìm kiếm được hiển thị cho người dùng. Trong trường hợp thiết bị yếu hơn
mức độ tin cậy, kết quả từ việc diễn giải truy vấn được kết hợp với thông thường
kết quả tìm kiếm từ khoá.
Ví dụ về cách 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 về phim. Hình 1 cho thấy một truy vấn tìm kiếm mẫu và kết quả phiên dịch.
![Tổng quan về diễn giải cụm từ tìm kiếm](https://developers-dot-devsite-v2-prod.appspot.com/static/cloud-search/images/query-interpretation.png?authuser=5&hl=vi)
Với truy vấn ví dụ này, việc diễn giải truy vấn sẽ thực hiện những việc sau:
Phân tích cú pháp giản đồ và xác định rằng các đối tượng cấp cao nhất trong nguồn dữ liệu đều được phân loại là
objecttype:movies
. Việc diễn giải truy vấn hiện biết rằng "phim" trong truy vấn là một loại đối tượng.Quét tài liệu trong nguồn dữ liệu, cùng với giản đồ, để xác định vị trí của chuỗi "action" xảy ra. Nếu chuỗi chủ yếu xảy ra theo một "thể loại" cụ thể trường nguồn dữ liệu, sau đó diễn giải truy vấn tự tin rằng "hành động" là 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 xảy ra trong ngữ cảnh của đoạn nội dung, thì mức độ tin cậy của tính năng diễn giải cụm từ tìm kiếm sẽ giảm xuống.
Cách 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 truy vấn tự động được 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 cụm từ tìm kiếm một cách tối ưu, bạn nên cấu trúc giản đồ của mình theo hướng dẫn trong tài liệu này.
Định cấu trúc giản đồ của bạn để hỗ trợ diễn giải truy vấn
Bạn nên xây dựng cấu trúc giản đồ để đảm bảo rằng bạn có thể hưởng lợi từ việc diễn giải truy vấn.
Bật tính năng diễn giải tên hiển thị
Diễn giải truy vấn của Cloud Search sử dụng
objectDefinitions
và
propertyDefinitions
trong giản đồ để diễn giải truy vấn 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ử giản đồ 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ó
objectDisplayLabel
là "Phim".Thuộc tính thể loại Định nghĩa có một "thể loại"
operatorName
và một "Danh mục"displayLabel
.
Những tên hiển thị này cho phép Cloud Search thực hiện truy vấn sau diễn giải:
- “phim hành động”, “phim thuộc thể loại hành động” hoặc “phim hành động theo thể loại phim”
được diễn giải 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" hoặc "phim hành động" được hiểu là
genre:action objecttype:movies
. - "phim thuộc danh mục hài kịch" được hiểu là
genre:comedy objecttype:movies
.
Bật tính năng diễn giải theo 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 ngày và
thuộc tính số. Các chế độ cài đặt này bật tính năng ngày tự động và
diễn giải số. Ngoài ra, để bật tính năng diễn giải sắp xếp,
đặt tuỳ chọn isSortable
cho các thuộc tính dạng số và ngày. Nội dung sau đây
giản đồ cho biết cách bật các tuỳ 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 số
runtime
đề cập đến thời lượng của một bộ phim. Chiến lược phát hành đĩa đơnruntimelessthan
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 một bộ phim được phát hành trong nhà hát.releasedbefore
vàreleasedafter
được đặt cho thuộc tính này.
Các chế độ cài đặt này cho phép Cloud Search đưa ra các diễn giải truy vấn sau đây:
- Giả sử năm là năm 2019, thì “phim phát hành trong năm nay” đượ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, "phim đã phát hành vào tuần trước" là
được diễn giải là
objecttype: movies releasedafter:2019-3-10 releasedbefore:2019-3-16
- "phim có thời lượng dưới 90 phút" được diễn giải là
objjecttype: movies runtimelessthan:90
. - Giả sử năm này là năm 2019, “những bộ phim phát hành trong năm nay và có thời lượng hơn
120 inch được hiểu là
releasedafter:2019-1-1 releasedbefore:2019-12-31 objecttype:movies runtimegreaterthan:120
. - "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 vào ngày phát hành theo thứ tự sắp xếp mặc định đang tăng dần.
Cho phép phiên dịch toán tử dành riêng
Bạn cũng có thể sử dụng type
, before
, after
, objecttype
được tích hợp sẵn
để nâng cao khả năng diễn giải cụm từ tìm kiếm. Khi lập chỉ mục một tài liệu, hãy thực hiện
sau:
Điền vào trường
updateTime
trongItemMetadata
để sử dụng các toán tửbefore
vàafter
. Các cho phép Cloud Search thực hiện các diễn giải truy vấn sau đây:- “phim từ tuần trước” sẽ liệt kê tất cả phim đã được cập nhật trong lập chỉ mục tuần trước đó.
- "phim trước tháng 1 năm 2019" sẽ liệt kê tất cả những 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ê mọi tài liệu phim hành động có kịch bản loạiapplication/mp4
,application/mpeg4
,application/x-shockwave-flash
,video/
vàapplication/vnd.google-apps.video
.
Hạn chế của tính năng 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ó một số hạn chế sau.
- Tính năng diễn giải truy vấn chỉ hoạt động cho các ACL nguồn dữ liệu sau:
- Tất cả tài liệu đều là công khai trong miền (mọi người trong miền đều có thể truy cập).
- Tất cả các tài liệu đều là nguồn dữ liệu công khai (những người có quyền truy cập vào nguồn dữ liệu) Danh sách kiểm soát quyền truy cập (ACL).
- Phần lớn các tài liệu trong nguồn dữ liệu có cùng một Danh sách kiểm soát quyền truy cập (ACL) (tất cả các tài liệu kế thừa Danh sách kiểm soát quyền truy cập (ACL) từ cùng một mục vùng chứa) mà không xác định trình đọc bổ sung nào.
- Nếu nhiều toán tử giản đồ có cùng giá trị, thì việc diễn giải
giá trị đó đối với ý định của toán tử đối với một truy vấn phụ thuộc vào độ tin cậy tổng thể
yếu tố 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ử đã 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 là "0" trong truy vấn có thể tham chiếu đế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 là thấp hơn. - Theo mặc định, cách diễn giải truy vấn của Cloud Search giúp thu hẹp phạm vi của trường
khi diễn giải truy vấn, ngoại trừ các toán tử văn bản được xác định bằng
exactMatchWithOperator
. - Toán tử
source
không được hỗ trợ trong truy vấn. - Các truy vấn kết hợp các điều khoản dựa trên toán tử và điều khoản văn bản tự do không thông dịch. Ví dụ: truy vấn "mức độ nghiêm trọng của các trường hợp ưu tiên p0:s0" sẽ không được hỗ trợ vì "trường hợp ưu tiên p0" là cụm từ văn bản tự do trong khi "mức độ nghiêm trọng:s0" là một số hạng dựa trên toán tử.
- Chiến lược diễn giải truy vấn 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 diễn giải, được xếp hạng mức độ liên quan). Nó không thực hiện đầy đủ trang thay thế kết quả.