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 Google Cloud Search hỗ trợ người dùng bằng cách đề xuất các từ khi họ nhập cụm từ tìm kiếm. Ví dụ: nội dung đề xuất có thể bao gồm các từ trong tiêu đề tài liệu, toán tử tìm kiếm hoặc tên trong tổ chức Google Workspace của bạn.

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

Suggest API kiểm tra các cụm từ tìm kiếm để tìm gợi ý về ngôn ngữ, chẳng hạn như tiếng Anh hoặc tiếng Tây Ban Nha, rồi ưu tiên kết quả. Trường languageCode trong một yêu cầu cũng cải thiện các đề xuất theo ngôn ngữ cụ thể.

Tình huống ví dụ

Hãy xem xét một nguồn dữ liệu 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 đều có một tiêu đề (ItemMetadata.title) và hai thuộc tính: genrecharacters.
  • Tiêu đề tài liệu 1: "Avengers Infinity War"; genre=science fiction; characters=Iron Man, Hulk.
  • Tiêu đề tài liệu 2: "Harry Potter"; genre=Adventure, Fantasy; characters=Hermione, Harry Potter.

Hình 1 minh hoạ cách tính năng tự động hoàn thành trích xuất các đề xuất.

Hai tài liệu và n-gram kết quả
Hình 1. Hai tài liệu và n-gram kết quả được dùng cho tính năng tự động hoàn thành

Từ tài liệu 1, mô hình này trích xuất n-gram (tối đa là 3 từ) như "Avengers", "Infinity", "War", "Avengers Infinity", "Infinity War" và "Avengers Infinity War". Từ tài liệu 2, hệ thống tạo ra "Harry", "Potter" và "Harry Potter".

Nếu người dùng nhập "h" khi truy vấn nguồn dữ liệu này, họ có thể thấy những đề xuất sau:

  • Harry
  • Hermione
  • Hulk
  • Harry Potter

Nếu người dùng chọn "Hermione" rồi nhập "a", tính năng tự động hoàn thành có thể hiển thị:

  • Hermione Adventure
  • Hermione Action
  • Hermione Avengers

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

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

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

Tích hợp với Suggest API

Nếu bạn 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ì Cloud Search sẽ hỗ trợ tính năng tự động hoàn thành một cách tự nhiên. Hãy nhớ đánh dấu các thuộc tính lược đồ là is_suggestable nếu bạn muốn chúng tự động hoàn thành.

Nếu bạn đang tạo một ứng dụng tìm kiếm tuỳ chỉnh, thì tính năng tự động hoàn thành sẽ có sẵn khi bạn sử dụng 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ó những hạn chế sau:

  • Không hỗ trợ việc hạn chế các cụm từ tự động hoàn thành bằng cách sử dụng FilterOptions, ngoại trừ các bộ lọc tích hợp như objecttypemimetype.
  • Không hỗ trợ các đề xuất dựa trên nhật ký cụm từ tìm kiếm của người dùng.
  • Bạn có thể đánh dấu tối đa 20 tài sản là is_suggestable. 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 những tài sản có exact_match_with_operator.
  • Tính năng tự động hoàn thành trả về tối đa 5 đề xuất về nội dung tài liệu và 2 đề xuất về người dùng.
  • Tính năng tự động hoàn thành chỉ đề xuất các cụm từ trong những tài liệu mà người dùng có thể truy cập.