2011-10-28 47 views
10
  1. Tôi đang cố gắng tạo một công cụ tìm kiếm chỉ để tìm hiểu và có được nhiều kinh nghiệm hơn trong Java.Công cụ tìm kiếm bằng Java?

    Mục đích của tôi là lưu trữ khoảng 100 tệp trên máy chủ, hỗn hợp html, xml, doc, txt và cho mỗi tệp có dữ liệu meta.

    SO khi tôi tìm kiếm từ khóa, nó sẽ hiển thị tệp có mô tả meta như Google.

    Câu hỏi của tôi là, ngoài html, bạn có thể thêm siêu dữ liệu vào bất kỳ định dạng tệp nào khác để mô tả meta được hiển thị hay không.

  2. Bạn có thể chỉ cho tôi hướng tới một công cụ tìm kiếm Java, có thể tìm kiếm trong các định dạng tệp (txt, html) và hiển thị kết quả.

    Tôi đang làm việc trên mã của riêng mình cho điều này, nhưng muốn xem mã người khác để được trợ giúp?

Trả lời

26

Lucene là công cụ tìm kiếm Java chuẩn.

Để thêm tài liệu từ nhiều nguồn khác nhau, hãy xem Apache Tika và để có hệ thống đầy đủ với giao diện dịch vụ/web, solr.

Lucene cho phép siêu dữ liệu tùy ý được liên kết với tài liệu của nó. Tika sẽ tự động tách siêu dữ liệu từ nhiều định dạng khác nhau.

4

1) Câu hỏi của tôi nằm ngoài html, bạn có thể thêm siêu dữ liệu vào bất kỳ định dạng tệp nào khác để mô tả meta được hiển thị.

Nói chung, bạn sẽ sử dụng cơ sở dữ liệu và lưu trữ siêu dữ liệu cùng với tài liệu ở đó. Sau đó, bạn sẽ thực hiện tìm kiếm từ khóa bằng cách sử dụng truy vấn cơ sở dữ liệu (có thể sử dụng SQL như hoặc ilike).

Các tệp có thể được lưu trữ trên ổ cứng chỉ với đường dẫn trong DB hoặc đưa vào cơ sở dữ liệu dưới dạng CLOB hoặc BLOB, tùy thuộc vào việc bạn có văn bản hay tài liệu nhị phân hay không.

2) Bạn có thể trỏ tới một công cụ tìm kiếm Java, có thể tìm kiếm trong các định dạng tệp (txt, html) và hiển thị kết quả.

Hãy thử Apache Lucene.

3

Thực sự tốt là Lucene. Có rất nhiều plugins (mà sẽ cho phép ví dụ bạn đọc từ .doc), hỗ trợ nhiều ngôn ngữ và rất nhiều các thuật toán (như khoảng cách levenshtein)

3

Nhìn vào apache nutch

Apache Nutch is an open source web-search software project. 

Nutch được xây dựng trên đầu trang của Lucene/solr để lập chỉ mục, tika để phân tích cú pháp tài liệu và thêm trình thu thập dữ liệu web của riêng nó.

3
  • Google bỏ qua giới thiệu hoàn toàn meta hiện nay, bởi vì nó đã được hoặc là bị lạm dụng, hoặc không đầy giá trị đáng kể
  • Lucene và/hoặc Solr có thể làm những gì bạn muốn, hãy xem.
  • 100 tệp là một số lượng rất nhỏ, bạn sẽ không gặp bất kỳ vấn đề nào để quản lý lượng dữ liệu này theo bất kỳ cách nào bạn muốn, nếu đó là tập thể dục.
2

Apache Tika để trích xuất siêu dữ liệu.

Apache Tika Bộ công cụ Apache Tika là một công cụ mã nguồn mở được cấp phép ASFv2 để trích xuất thông tin từ tài liệu kỹ thuật số. Tika cho phép công cụ tìm kiếm, hệ thống quản lý nội dung và các ứng dụng khác làm việc với nhiều loại tài liệu kỹ thuật số để dễ dàng phát hiện và trích xuất siêu dữ liệu và nội dung từ tất cả các định dạng tệp chính.

3

Bạn sẽ phải sử dụng một số thư viện. Trước hết, như nhiều người đã đề cập trước khi bạn có thể sử dụng Lucene để thực hiện tìm kiếm thực tế. Tuy nhiên, Lucene chỉ xử lý văn bản thuần túy, vì vậy bạn cần trích xuất từ ​​các tệp bạn chỉ mục. Đối với điều này, bạn có thể sử dụng Apache Tika.

Để bắt đầu, có thể bạn nên mua sách Lucene in Action 2nd edition. Hầu hết các ví dụ trong đó vẫn được cập nhật. Nếu bạn muốn trở thành một cheapskate bạn cũng có thể chỉ cần nhìn vào mã nguồn được cung cấp trên trang đó.

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