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 gợi ý từ khi họ nhập cụm từ tìm kiếm. Ví dụ: nội dung gợi ý 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ụm từ từ tiêu đề tài liệu đã lập chỉ mục và sử dụng mô hình n-gram để xác định nội dung gợi ý 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 văn bản và thuộc tính lược đồ enum 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 giúp cải thiện nội dung gợi ý theo ngôn ngữ.

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 có một tiêu đề (ItemMetadata.title) và 2 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 nội dung gợi ý.

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à trigram) như "Avengers", "Infinity", "War", "Avengers Infinity", "Infinity War" và "Avengers Infinity War". Từ tài liệu 2, mô hình này 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 các nội dung gợi ý sau:

  • Harry
  • Hermione
  • Hulk
  • Harry Potter

Nếu người dùng chọn "Hermione" rồi nhập "a", thì 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 đã nhập. Trong ví dụ này, tính năng này sẽ mở rộng "a" thành "adventure", "action" và "avengers" 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à nội dung gợi ý đuôi.

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

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 các thuộc tính đó được tự động hoàn thành.

Nếu bạn đang xây dựng một ứng dụng tìm kiếm tuỳ chỉnh, thì bạn có thể sử dụng tính năng tự động hoàn thành bằng cách 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 điểm hạn chế sau:

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