- Giới thiệu về đề xuất Freebase
- Thêm đề xuất Freebase vào trang web của bạn
- Tuỳ chọn cấu hình
- Sửa đổi CSS
- Cách hoạt động của sự kiện
- Thông tin khác và câu hỏi thường gặp
- Ví dụ và công thức nấu ăn
Giới thiệu về đề xuất Freebase
Freebase Đề xuất là một trình bổ trợ jQuery thêm tính năng tự động hoàn thành chủ đề cho các hộp tìm kiếm trên trang web của bạn. Người dùng bắt đầu nhập văn bản và tiện ích đề xuất các kết quả phù hợp từ hàng triệu chủ đề trên Freebase.com hoặc bất kỳ loại con nào như Con người, Vị trí hoặc Động vật. Danh mục loại trừ chủ đề giúp người dùng chọn đúng mục được xác định duy nhất bằng mã nhận dạng Freebase.
Tính năng
- Trình duyệt chéo - dựa trên jQuery, được thử nghiệm trên IE7+, FF2+, Safari 3+ và Chrome (phiên bản jquery tối thiểu là 1.4.4)
- Nhiều miền. Không cần máy chủ proxy nhờ có JSONP.
- Được Google lưu trữ trên gstatic.com
- Miễn phí! (Có áp dụng Điều khoản tiêu chuẩn của Freebase và Điều khoản API của Google Developer.)
Đề xuất cơ sở miễn phí trong tự nhiên
Trang web được biết là nên sử dụng Đề xuất cơ sở miễn phí:
- Bài đánh giá của WSJ Book
- ContentTagger.org – Gắn thẻ bản demo từ Báo Người giám hộ
- geolocation.ws – Gắn thẻ ảnh cho các thực thể Freebase
Tại sao bạn nên dùng Freebase Proposal?
- Với tính năng tự động hoàn thành, người dùng của bạn nhập ít dữ liệu hơn để nhập nhiều dữ liệu hơn.
- Dữ liệu nhập rất thú vị và chính xác!
- Giảm tải cho nhận thức của người dùng nhờ có hình ảnh và thông tin mô tả trong các chủ đề không rõ ràng.
- Sử dụng giá trị nhận dạng mạnh thay vì từ khóa dạng văn bản. Tên "Sting" không rõ ràng, nhưng mã nhận dạng Freebase
/en/sting
và/en/sting_1959
thì không. - Tránh dùng tên trùng lặp cho cùng một thực thể. Puff Daddy, P. Diddy, Sean Combs đều tham chiếu đến
/en/sean_combs
.
Thêm Đề xuất Freebase vào trang web của bạn
Để thêm FreebaseGợi ý vào trang web của bạn, hãy đưa mã sau vào nguồn của trang web. Bạn cũng có thể lấy và sử dụng khoá API để mở rộng chức năng của tính năng Đề xuất cơ sở miễn phí.
Mã cần đưa vào trang web của bạn
Hãy đưa nội dung sau vào <head>
của tài liệu HTML:
<link type="text/css" rel="stylesheet" href="https://www.gstatic.com/freebase/suggest/4_2/suggest.min.css" /> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script> <script type="text/javascript" src="https://www.gstatic.com/freebase/suggest/4_2/suggest.min.js"></script> <script type="text/javascript"> $(function() { $("#myinput").suggest({filter:'(all type:/film/director)'}); }); </script>
Sau đó, sử dụng trường nhập liệu trong tài liệu <body>
tương tự như trường này:
<input type="text" id="myinput"/>
Lấy khóa API
Việc lấy khóa API cho phép ứng dụng thực hiện các yêu cầu Đề xuất. Nếu không có khóa API, tiện ích sẽ hoạt động cho mục đích thử nghiệm giới hạn. Để có khoá, hãy làm theo hướng dẫn trên trang Bắt đầu của chúng tôi.
Sau khi bạn có khóa, hãy chuyển khóa đó đến FreebaseĐề xuất theo cách tương tự như sau:
$(function() { $("#myinput").suggest({ "key" : "<your api key>"}); });
Tuỳ chọn cấu hình
Bảng sau đây mô tả các tuỳ chọn cấu hình cho Freebase Proposal.
Tên | Loại | Mặc định | Nội dung mô tả |
---|---|---|---|
nâng cao | Boolean | đúng | Nếu là true, đề xuất Freebase sẽ phân tích cú pháp và xử lý các cặp name:value cùng dòng trong dữ liệu đầu vào dưới dạng các hạn chế bổ sung về bộ lọc. Ví dụ: đối với 'bob type:artist contributed_to:"Love and Theft"' , một hạn chế bổ sung về bộ lọc, '(all type:artist contributed_to:"Love and Theft")' được truyền cho tìm kiếm. Ngoài ra, khi chế độ nâng cao là true, tính năng Đề xuất cơ sở miễn phí sẽ nhận dạng được các ID và MID tự do để người dùng có thể trực tiếp tìm kiếm một thực thể theo mã nhận dạng hoặc MID. |
chính xác | Boolean | sai | Nếu là giá trị true, thì API này sẽ chỉ định rằng API Tìm kiếm chỉ trả về các kết quả khớp chính xác (trong số các dữ liệu đầu vào). Giá trị này được chuyển một cách minh bạch đến API Tìm kiếm. |
filter | Chuỗi | null | Chỉ định(các) quy tắc ràng buộc của bộ lọc tìm kiếm sẽ được chuyển vào API Tìm kiếm một cách minh bạch dưới dạng(các) tham số bộ lọc. Ví dụ: để hạn chế đề xuất Freebase chỉ tìm trong các trường cao đẳng và/hoặc đại học, hãy sử dụng "(all type:/education/university) " làm bộ lọc. Xem bài viết API tìm kiếm hoặc Các điều kiện ràng buộc văn bản để xem danh sách đầy đủ các bộ lọc tìm kiếm có sẵn. |
phím | Chuỗi | null | Cung cấp khoá API cho API Tìm kiếm mặc định do service_url + service_path chỉ định. Bạn có thể lấy một API trong Bảng điều khiển API. |
ngôn ngữ | Chuỗi | null | lang Hiện tại, 18 ngôn ngữ được hỗ trợ: en (tiếng Anh), es (tiếng Tây Ban Nha), fr (tiếng Pháp), de (german), it (italian), pt (portuguese), zh (chinese), ja (tiếng Nhật), ko (korean), ru (Nga), sv (swedish), fi (tiếng Phần Lan), da (dalia), nl (dutch), le (tiếng tràn ngập). Cho đến nay, tiếng Anh có mức độ phù hợp cao nhất và là ngôn ngữ mặc định. Giá trị này được chuyển một cách minh bạch đến API Tìm kiếm. |
ghi điểm | Chuỗi | null | Tham số scoring giúp bạn kiểm soát được các thành phần của điểm mức độ liên quan được dùng để tính điểm cuối cùng. Giá trị này được chuyển một cách minh bạch đến API Tìm kiếm.
|
chính tả | Chuỗi | always |
Các giá trị hợp lệ là always , no_results , no_spelling . Nếu yêu cầu chính tả và nội dung tìm kiếm trả về tính năng sửa lỗi chính tả, thì đề xuất Freebase sẽ hiển thị nội dung sửa trong danh sách Đề xuất. Giá trị này được chuyển trong suốt vào dịch vụ tìm kiếm. |
bay ra | Boolean, bottom |
đúng | Xác định có hiển thị mô tả thời gian chờ khi di chuột hay không. Nếu bottom , hãy hiển thị nút thoát ở cuối Danh sách đề xuất. Nếu danh sách Đề xuất xuất hiện phía trên hộp nhập dữ liệu, thì danh sách bỏ qua sẽ hiển thị ở đầu danh sách. Nếu là giá trị đúng, thì tính năng Đề xuất sẽ cố gắng hết sức để hiển thị danh sách bỏ qua ở bên trái hoặc bên phải danh sách.
|
gợi_ý_mới | Chuỗi | null | Văn bản sẽ hiển thị bên dưới danh sách đề xuất. Khi bạn chọn, fb-select-new sẽ được kích hoạt. |
css | Đối tượng | Ghi đè tên lớp CSS mặc định được sử dụng cho các phần tử Đề xuất cơ sở miễn phí khác nhau. Xem nội dung Sửa đổi CSS để biết thêm chi tiết. | |
tiền tố css | Chuỗi | null | Bạn có thể chỉ định một tiền tố sẽ được thêm vào trước tên lớp của các phần tử Đề xuất. Ví dụ: nếu css_prefix là "foo- " tên vùng chứa sẽ là "foo-fbs-pane " và "foo-fbs-flyoutpane " |
show_id | Boolean | đúng | Hiển thị giá trị 'notable &hl=vi; được tìm kiếm trả về. Tuy nhiên, nếu mã này không có sẵn và điều này đúng, thì mã này sẽ hiển thị mã của mặt hàng. |
url_dịch_vụ | Chuỗi | Giá trị là https://www.googleapis.com/freebase/v1 |
Đây là URL cơ sở dành cho dịch vụ Đề xuất. |
đường_dẫn_dịch_vụ | Chuỗi | /search |
service_url + service_path = URL đến dịch vụ Đề xuất. |
fly_service_url | Chuỗi | null | URL cơ sở dành cho dịch vụ gọi đi. Nếu giá trị rỗng, mặc định là service_url . |
bay_dịch_vụ_áp_dụng | Chuỗi | Giá trị là /search?filter=(all mid:${id})&output=(notable:/client/summary description type)&key=${key} |
flyout_service_url + flyout_service_path = url để gọi dịch vụ bay ra. # & # 39; ${id} &# 39; và &# 39;{key} &# 39; được thay thế bằng ID mục được di chuột và khóa API tương ứng. |
fly_image_service_url | Chuỗi | null | URL cơ sở dành cho hình ảnh trong thời gian chờ. Nếu giá trị rỗng, mặc định là service_url . |
ruồi_hình_ảnh_dịch_vụ | Chuỗi | Giá trị là /image${id}?maxwidth=75&key=${key}&errorid=/freebase/no_image_png |
flyout_image_service_url + flyout_image_service_path = url thành dịch vụ hình ảnh. # & # 39; ${id} & # 39; và &# 39;{key} & # 39; sẽ được thay thế bằng ID mục được di chuột và khóa API tương ứng. |
cha_mẹ_ra | Chuỗi (bộ chọn jQuery) | null | Theo mặc định, vùng chứa ảnh động xuất hiện ở phần nội dung của tài liệu và được đặt đúng vị trí. flyout_parent chỉ định một phần tử mẹ khác và nút thoát sẽ không được định vị chính xác. |
căn chỉnh | Chuỗi | null | Nếu bạn không đặt align , thì danh sách Đề xuất sẽ được căn chỉnh theo "left" hoặc "right" của hộp nhập phụ thuộc vào vị trí của tài liệu trong tài liệu. Để ghi đè hành vi này và đặt căn chỉnh một cách rõ ràng, hãy đặt align thành "left " hoặc "right " |
trạng thái | Mảng[4](Chuỗi) | ["Bắt đầu nhập để nhận đề xuất...", "Tìm kiếm...", "Chọn một mục từ danh sách:", "Rất tiếc, đã xảy ra lỗi. Vui lòng thử lại sau"] | Thông báo trạng thái xuất hiện ở 4 giai đoạn khác nhau của Đề xuất; [0] Khi hộp đầu vào trống và được lấy tiêu điểm. [1] khi truy xuất kết quả, [2] khi hiển thị kết quả, [3] khi có lỗi từ dịch vụ Đề xuất. Bạn có thể ghi đè các thông báo trạng thái mặc định này bằng cách chuyển vào một Mảng chuỗi khác tương ứng với 4 giai đoạn khác nhau. |
mẹ | Chuỗi (bộ chọn jQuery) | null | Theo mặc định, danh sách Đề xuất được thêm vào nội dung tài liệu và được đặt ở vị trí tuyệt đối. Sử dụng parent để chỉ định một phần tử mẹ khác và danh sách sẽ không được định vị tuyệt đối. |
ảnh động | Boolean | sai | Nếu là đúng, danh sách Đề xuất sẽ hiển thị là ảnh động bằng hiệu ứng jQuery slidesDown. |
xhr_delay | Số nguyên (mili giây) | 200 |
Chỉ định độ trễ trước khi trả về kết quả. Điều này hữu ích trong trường hợp mql_filters phức tạp và API đề xuất có thể mất nhiều thời gian hoặc tương tự để trả lời so với độ trễ được mã hoá cứng, gây ra trải nghiệm người dùng hơi suy giảm và tải không cần thiết. |
Chỉ mục zIndex | Số nguyên | null | Đặt chỉ mục z của hầu hết các vùng chứa bên ngoài (fbs-pane , fbs-flyoutpane ). Điều này rất hữu ích khi sử dụng Đề xuất cơ sở miễn phí trong các hộp thoại để các phần tử Đề xuất hiển thị ở trên cùng. |
Sửa đổi CSS
Bạn có thể ghi đè các lớp CSS mặc định mà Freebase Proposal sử dụng bằng cách chuyển sơ đồ giá trị thay thế cho các tên lớp CSS bằng tùy chọn cấu hình css. Bảng sau đây mô tả các lớp trong CSS mặc định.
ngăn | Vùng chứa bên ngoài của danh sách Đề xuất.
Mặc định: \39; |
list | Danh sách Đề xuất.
Mặc định: \39; |
mặt hàng | Các mục trong danh sách Đề xuất.
Mặc định: &hl=vi: |
item_name | Phần tử chứa tên của mặt hàng.
Mặc định: \39; |
đã chọn | Mục được làm nổi bật/đã chọn. Mặc định: &hl=vi:fbs-selected ' |
trạng thái | Phần tử chứa thông báo trạng thái. Mặc định: &hl=vi:fbs-status ' |
item_type [loại_mặt_hàng] | Phần tử chứa loại đáng chú ý của một mục. Mặc định: &hl=vi:fbs-item-type ' |
flyoutpane | Vùng chứa bên ngoài thoát ra.
Mặc định: \39; |
Ví dụ:
$("#myinput").suggest({ "css": { "pane": "custom-pane-class", "list": "custom-list-class" } });
Cách thức hoạt động của sự kiện
Đề xuất miễn phí cơ sở kích hoạt các sự kiện sau trong ngữ cảnh đầu vào đã được khởi tạo.
fb-select
– Khi một mục được chọn từ danh sách Đề xuất. Sự kiện này đi kèm với một đối tượng dữ liệu mà data.name
và data.id
biểu thị tên và mã nhận dạng của mục đã chọn.
$("#myinput").suggest().bind("fb-select", function(e, data) { ... });
fb-select-new
– Khi tùy chọn suggest_new
được bật, sự kiện này sẽ được kích hoạt khi mục đề xuất mới được chọn. Sự kiện đi kèm với giá trị đầu vào.
$("#myinput").suggest({'suggest_new': 'This is the suggest new text'}).bind("fb-select-new", function(e, val) { ... });
Câu hỏi thường gặp và các thông tin khác
Câu hỏi, báo cáo lỗi và ý kiến phản hồi rất được mong đợi trên Nhóm Google Nhà phát triển Freebase hoặc Danh sách vấn đề (chọn thành phần "Tìm kiếm/Đề xuất"
- Tôi vừa tạo một chủ đề mới, nhưng chủ đề đó không hiển thị trong Đề xuất - có gì đang xảy ra?
FreebaseGợi ý sử dụng API Tìm kiếm để cung cấp kết quả và API này được cập nhật gần như theo thời gian thực. Các chủ đề mới thường xuất hiện trong khoảng một phút, nhưng các chủ đề này có thể dài hơn nếu hệ thống tải quá tải.
Ví dụ và công thức nấu ăn
- Công thức nấu ăn đề xuất trên Freebase - chia sẻ mẹo của bạn về việc sử dụng Đề xuất trên Wiki của chúng tôi.
Cách sử dụng cơ bản
$("#example1") .suggest() .bind("fb-select", function(e, data) { alert(data.name + ", " + data.id); });
Đề xuất mới
$("#example2") .suggest({ "suggest_new": "Click on me if you don't see anything in the list" }) .bind("fb-select", function(e, data) { alert(data.name + ", " + data.id); }) .bind("fb-select-new", function(e, val) { alert("Suggest new: " + val); });
Giới hạn các đề xuất bằng bộ lọc
Đề xuất phim do Steven Spielberg làm đạo diễn.
$("#example5") .suggest({ "filter": "(all type:/film/film contributor:\"Steven Spielberg #directed_by\")" }) .bind("fb-select", function(e, data) { alert(data.name + ", " + data.id); });
Lọc từ hộp văn bản
Bạn có thể lọc kết quả bằng cách nhập trực tiếp bất kỳ hạn chế nào của bộ lọc vào hộp Đề xuất. Ví dụ: để tìm kiếm sách về cách làm vườn, hãy thử:
gardening type:/book/book gardening type:book
Trên thực tế, bạn có thể sử dụng bất kỳ ràng buộc nào của Tìm kiếm siêu dữ liệu để lọc kết quả của mình. Ví dụ: để tìm kiếm tất cả những người "contributed_to
" phim "Tiết kiệm Ryan riêng tư", hãy thử:
contributed_to:"Saving Private Ryan" type:/people/person
Như đã nêu trong phần Tùy chọn cấu hình, lang
, scoring
, spell
, exact
được chuyển một cách minh bạch đến API Tìm kiếm. Bạn cũng có thể ghi đè chúng nội tuyến. Ví dụ: nếu FreebaseGợi ý được khởi tạo bằng lang:"en"
và bạn cũng muốn tìm kiếm các tên tiếng Pháp, hãy thử:
babar lang:fr,en
Để xem thêm các bộ lọc và ràng buộc tìm kiếm, vui lòng tham khảo Sổ tay tìm kiếm.