Tiện ích tìm kiếm Freebase

  1. Giới thiệu về đề xuất Freebase
  2. Thêm đề xuất Freebase vào trang web của bạn
  3. Tuỳ chọn cấu hình
  4. Sửa đổi CSS
  5. Cách hoạt động của sự kiện
  6. Thông tin khác và câu hỏi thường gặp
  7. 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.

Miễn phí đề xuất cơ sở.png

Tính năng

Hãy dùng thử!

Đề 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í:

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/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.
  • entity: Sử dụng cả điểm số MIỄN PHÍ và mức độ liên quan của Google theo mặc định, mặc định thiếu điểm số của Google là 1.0. Đây là tuỳ chọn mặc định.
  • freebase: Chỉ sử dụng điểm mức độ liên quan của Freebase.
  • schema: Sử dụng khi tìm kiếm các thực thể giản đồ như loại, thuộc tính hoặc miền. Số lượng đường liên kết của các thực thể giản đồ được tính theo cách khác.
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;fbs-pane#39;

list Danh sách Đề xuất.

Mặc định: \39;fbs-list#39;

mặt hàng Các mục trong danh sách Đề xuất.

Mặc định: &hl=vi:fbs-item'

item_name Phần tử chứa tên của mặt hàng.

Mặc định: \39;fbs-item-name#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;fbs-flyoutpane#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.namedata.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ách sử dụng cơ bản

$("#example1")
 .suggest()
 .bind("fb-select", function(e, data) {
   alert(data.name + ", " + data.id);
});

Hãy dùng thử!

Đề 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);
 });

Hãy dùng thử!

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);
});

Hãy dùng thử!

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.