Triển khai tính năng tự động hoàn thành

Tính năng tự động hoàn thành của Cloud Search hỗ trợ người dùng bằng cách đề xuất các từ khi người dùng nhập cụm từ tìm kiếm. Ví dụ: nội dung đề xuất có thể là các từ trong tiêu đề tài liệu, toán tử tìm kiếm, giá trị toán tử tìm kiếm hoặc tên và địa chỉ email trong tổ chức Google Workspace.

Tính năng Tự động hoàn thành trích xuất các cụm từ từ tiêu đề của tài liệu được lập chỉ mục và sử dụng mô hình n-gram để xác định nội dung đề xuất phân phát bằng Suggest API. Theo mặc định, các cụm từ trong tiêu đề tài liệu sẽ xuất hiện trong tính năng tự động hoàn thành. Bạn cũng có thể đánh dấu các thuộc tính giản đồ văn bản và enum là is_suggestable để tự động hoàn thành tên và giá trị thuộc tính tương ứng.

API Đề xuất kiểm tra cụm từ tìm kiếm để biết gợi ý về ngôn ngữ của cụm từ đó, chẳng hạn như tiếng Anh hoặc tiếng Tây Ban Nha, đồng thời ưu tiên kết quả cho phù hợp. Trường languageCode của một yêu cầu cũng được dùng để cải thiện nội dung đề xuất theo ngôn ngữ.

Tình huống ví dụ

Ví dụ: giả sử bạn có nguồn dữ liệu sau đây chứa dữ liệu về phim:

  • Nguồn dữ liệu chứa 2 tài liệu.
  • Mỗi tài liệu có một tiêu đề (ItemMetadata.title) và hai thuộc tính: genrecharacters.
  • Tài liệu đầu tiên có tiêu đề "Avengers Infinity War" với genre=science fictioncharacters=Iron Man, Hulk
  • Tài liệu thứ hai có tiêu đề "Harry Potter" với genre=Adventure, Fantasy andcharacters=Hermione, Harry Potter`

Hình 1 minh hoạ cách trích xuất các đề xuất tự động hoàn thành từ tiêu đề tài liệu, thuộc tính và giá trị thuộc tính.

Hai tài liệu và ngram thu được
Hình 1. Hai tài liệu và n-gram thu được dùng để tự động hoàn thành

Từ tài liệu 1, chúng ta trích xuất n-gram (tối đa là trigram) "Avengers", "Infinity", "War", "Avengers Infinity", "Infinity War", "Avengers Infinity War". Tương tự, từ tài liệu 2, chúng ta tạo "Harry", "Potter", "Harry Potter".

Khi truy vấn nguồn dữ liệu này, giả sử người dùng bắt đầu bằng cách nhập "h". Các đề xuất sẽ hiển thị cho người dùng là:

  • Harry
  • Hermione
  • Hulk
  • Harry Potter

Giả sử người dùng chọn đề xuất tự động hoàn thành "Hermione" và thao tác nhấn phím tiếp theo của người dùng là ký tự "a". Các đề xuất tự động hoàn thành hiển thị cho người dùng sẽ là:

  • Hermione Adventure
  • Hành động của Hermione
  • Hermione Avengers

Tính năng Tự động hoàn thành sẽ cố gắng hoàn thành từ cuối cùng (hoặc ngram) đang được nhập. Trong ví dụ trước, hàm này chỉ mở rộng "a" thành "adventure" (phiêu lưu), "action" (hành động) và "avengers" (kẻ báo thù) vì không có văn bản nào bắt đầu bằng "hermione a". Đề xuất này được gọi là đề xuất đuôi; chỉ tự động hoàn thành từ/n-gram cuối cùng đang được nhập.

Tính năng tự động hoàn thành của Cloud Search trả về tối đa 5 nội dung đề xuất từ nội dung tài liệu và 2 nội dung đề xuất về người dùng.

Theo mặc định, các cụm từ trong tiêu đề tài liệu sẽ xuất hiện trong tính năng tự động hoàn thành. Bạn phải đánh dấu rõ ràng các thuộc tính schema là is_suggestable để API đề xuất tự động hoàn thành tên và giá trị thuộc tính tương ứng.

Tích hợp với Autocomplete API

Nếu bạn đang sử dụng ứng dụng tìm kiếm mặc định hoặc tiện ích tìm kiếm có thể nhúng, thì tính năng tự động hoàn thành của Cloud Search sẽ được hỗ trợ ngay từ đầu mà không cần làm gì thêm. Hãy nhớ rằng theo mặc định, các cụm từ trong tiêu đề tài liệu sẽ xuất hiện trong tính năng tự động điền. Bạn phải đánh dấu rõ ràng các thuộc tính giản đồ là is_suggestable để API đề xuất tự động điền tên và giá trị thuộc tính tương ứng.

Nếu bạn đang xây dựng một ứng dụng tìm kiếm tuỳ chỉnh, tính năng tự động hoàn thành sẽ hoạt động bằng cách truy vấn các điểm cuối API /query/suggest.

Các điểm hạn chế

Tính năng tự động hoàn thành có các giới hạn sau:

  • Chúng tôi không hỗ trợ việc hạn chế cụm từ tự động hoàn thành của Tìm kiếm trên đám mây bằng cách sử dụng FilterOptions được xác định trong giản đồ, ngoại trừ các bộ lọc tích hợp sau: objectype, mimetype và bộ lọc loại.

  • Không hỗ trợ đề xuất dựa trên nhật ký truy vấn (các nội dung tìm kiếm mà người dùng đã thực hiện trước đó trong một ứng dụng tìm kiếm)

  • Bạn có thể đánh dấu tối đa 20 thuộc tính là is_suggestable. Bạn có thể liên hệ với nhóm hỗ trợ Cloud Search để tăng hạn mức này.

  • Tính năng tự động hoàn thành toán tử tìm kiếm không dùng được cho các tài sản có exact_match_with_operator.

  • Tính năng tự động hoàn thành của Cloud Search trả về tối đa 5 nội dung đề xuất từ nội dung tài liệu và 2 nội dung đề xuất về người dùng.

  • Tính năng tự động hoàn thành của Cloud Search chỉ đề xuất các cụm từ trong những tài liệu mà người dùng có quyền truy cập.