2016-06-22 15 views
5

Làm cách nào để đạt được đề xuất tự động hoàn thành dựa trên từ khóa trong Algolia tương tự như một cái gì đó như Amazon hoặc Google?Đề xuất từ ​​khóa tự động hoàn thành của Google hoặc Amazon trong Algolia

Tôi đã cố gắng xây dựng tính năng tự động điền dựa trên nhiều thuộc tính của tài liệu Algolia, tuy nhiên mục đích của nó không thực sự giúp tôi hoàn thành cụm từ nhưng nó hướng tôi chọn một sản phẩm cụ thể.

Trả lời

9

Tôi đã cố gắng xây dựng autocomplete dựa trên nhiều thuộc tính của một tài liệu Algolia, tuy nhiên mục đích của nó không thực sự giúp tôi tại hoàn thành một cụm từ nhưng nó chỉ đạo tôi tại chọn một sản phẩm cụ thể.

Nếu bạn muốn đề xuất một số tìm kiếm thay vì sản phẩm/đối tượng, bạn có thể tạo chỉ mục bằng nhật ký tìm kiếm của mình. Bạn có thể sử dụng điểm cuối Analytics API + popular searches của Algolia để nhận chúng nếu bạn chưa có chúng.

Sau đó, bạn có thể lưu trữ chúng trong một chỉ số popular_searches như thế:

{ 
    "value": "my popular search", 
    "count": 42 // the search frequency 
} 

Và configure:

  • attributesToIndex để nhắm mục tiêu các value thuộc tính
  • customRanking sử dụng desc(count) như thuộc tính phản ánh phổ biến

Điều đó đang được nói, bạn nên biết rằng như vậy tìm kiếm phổ biến autocomplete có thể siêu phức tạp để thiết lập để đạt được UX của Amazon/Google:

  • chắc chắn rằng tìm kiếm mà bạn sử dụng là đủ phổ biến (loại bỏ tần số thấp)
  • đảm bảo tìm kiếm bạn sử dụng thực sự đang truy xuất kết quả -> để đảm bảo người dùng của bạn nhận được kết quả khi chọn từ menu thả xuống (bạn có thể truy vấn chỉ mục sản phẩm của mình tại thời điểm tạo)
  • tìm kiếm không chứa SPAM (siêu dễ dàng để thực hiện một kịch bản bắn phá API của bạn để thực hiện pam tìm kiếm rất phổ biến vì nó đi trong menu thả xuống của bạn)
  • chắc chắn làm tìm kiếm của bạn không bao gồm tấn/xấu từ :) (Ngay cả google có một thời gian khó khăn với điều đó)

TLDR; Nếu bạn có lựa chọn, hãy tính toán trước danh sách tìm kiếm từ sản phẩm/đối tượng thay vì sử dụng nhật ký truy vấn của bạn :) Sẽ an toàn hơn.

+1

Cảm ơn bạn, phản hồi tuyệt vời. – GiamPy

Các vấn đề liên quan