2009-08-31 28 views
14

Tôi sẽ cung cấp một tập hợp các trang HTML tĩnh trên CD-Rom; các trang này cần được xem đầy đủ mà không cần truy cập Internet.Tìm kiếm toàn văn cho các tệp HTML tĩnh trên CD-Rom qua javascript

Tôi muốn cung cấp tìm kiếm toàn văn (giống Lucene) cho nội dung của các trang đó, nên "chỉ hoạt động" từ CD-ROM mà không cần cài đặt phần mềm trên máy khách.

Việc triển khai công cụ tìm kiếm bằng javascript sẽ là giải pháp hoàn hảo, nhưng tôi gặp khó khăn trong việc tìm kiếm bất kỳ hình thức nào trông chắc chắn/hiện tại/phổ biến ...?

tôi đã tìm thấy những: + jsFind + js-search

nhưng cả hai dự án dường như thay vì không hoạt động?

Một giải pháp khác, bên cạnh một công cụ tìm kiếm cụ thể trong javascript, sẽ có khả năng truy cập các chỉ số Lucene cục bộ từ javascript: các chỉ mục sẽ được xây dựng với Lucene và sao chép vào CD-Rom cùng với các tệp HTML.

Chỉnh sửa: tự xây dựng nó (xem bên dưới).

Trả lời

11

Thực ra tôi đã tự xây dựng nó.

Các giải pháp hiện có (mà tôi có thể tìm thấy) là không thuyết phục.

Tôi muốn tìm kiếm một cây rất dài (ul/li/ul ...) được hiển thị dưới dạng một trang; nó chứa 5000 mục. Có vẻ hơi kỳ lạ khi hiển thị một cây dài trên một trang nhưng thực tế với việc thu gọn/mở rộng nó trực quan hơn nhiều so với các trang riêng biệt và vì chúng tôi ngoại tuyến, thời gian tải xuống không phải là vấn đề (thời gian phân tích cú pháp là tuy nhiên, Chrome là tuyệt vời ;-)

Chức năng "tìm kiếm" được cung cấp cùng với trình duyệt hiện đại (FF và Chrome) có hai vấn đề lớn: chúng chỉ tìm kiếm các mục hiển thị trên trang và không thể tìm kiếm -từ liên tiếp.

Tôi muốn có thể tìm kiếm các mục đã thu gọn (không hiển thị trên màn hình); Tôi muốn tìm "một hai ba" khi tìm kiếm "một ba" (giống như với Google/Lucene); và tôi chỉ muốn mở cành cây có chứa các vật phẩm tìm thấy.

Vì vậy, những gì tôi đã làm là:

  1. tạo ra một chỉ số đảo ngược của từ < -> id của các mục từ danh sách (thông qua XSLT)
  2. chuyển đổi (khoảng 4500 chữ độc đáo trong tài liệu.) chỉ số này để bó mảng javascript (một từ = một mảng, chứa id)
  3. khi tìm kiếm, giao nhau các mảng đại diện bởi các từ tìm kiếm
  4. bước 3 trở lại một mảng của id mà tôi có thể sau đó mở/highlight

Nó thực hiện chính xác những gì tôi cần và nó thực sự nhanh chóng. Tốt hơn, vì nó tìm kiếm từ một "chỉ mục" độc lập (mảng id) nó có thể tìm kiếm khi danh sách không được tải ngay trong trình duyệt!

+1

Cảm ơn bạn đã báo cáo lại! – RichieHindle

+1

Có bất kỳ ví dụ nào về điều này chúng ta có thể xem không? –

+0

Bạn có công khai điều này ở bất cứ đâu? – James

2

Zoom Search Engine có thể thực hiện việc này.

Tôi chưa sử dụng phiên bản CD, nhưng tôi sử dụng phiên bản PHP cho trang web của mình và nó hoạt động rất tốt.

+0

tôi đã nhìn vào đó, cảm ơn, nhưng nó có vẻ khá phức tạp để thích ứng với nhu cầu cụ thể của tôi. – Bambax

1

Tôi biết rất nhiều người sử dụng Java để viết các applet tìm kiếm CD. Tôi có một danh sách hơi cũ về các chương trình miễn phí và thương mại khác nhau tại Search Tools for CD-ROMs and DVDs.

0

Fullproof là thư viện javascript nhỏ tiện lợi có thể hoạt động như tìm kiếm văn bản cho bạn. Nó sẽ hữu ích trong bối cảnh này, nhưng nó cũng hữu ích trong mô hình "dày-trang web javascript".

6

câu hỏi ban đầu đã được hỏi trong '09

Tính đến '14, có lunr.js mô tả như:

đơn giản tìm kiếm toàn văn trong trình duyệt của bạn

Xem Demo, và Github repo.


CẬP NHẬT tháng 9 năm 2016: Trọng lượng nhẹ mờ-tìm kiếm, trong JavaScript http://fusejs.io/

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