Lucene
Với sự ra đời và phát triển không ngừng của Web, lượng tài liệu mà con người cần tổ chức, quản lý và khai thác gia tăng theo từng ngày. Để tìm kiếm những thông tin cần thiết trong kho các văn bản và trang Web này, các hệ thống tìm kiếm đã lần lượt được phát triển và thành công nhất là các hệ thống truy vấn theo từ khóa. Tuy nhiên, phần lớn các công cụ tìm kiếm mạnh mẽ nhất hiện nay như Yahoo!, Google, và MSN… là những sản phẩm thương mại và mã nguồn được giữ bí mật. Điều này dẫn tới kết quả là nhiều nhà phát triển riêng biệt sẽ phải tự mình xây dựng từ ban đầu một công cụ tìm kiếm nếu hệ thống của họ cần cung cấp chức năng tìm kiếm. Đứng trước một sự lãng phí rất lớn về công sức lập trình, vào năm 1998 Doug Cutting đã bắt đầu tiến hành xây dựng thư viện truy vấn thông tin mã nguồn mở Lucene với mục tiêu phát triển nó thành một thư viện truy vấn tài liệu hoàn chỉnh cho phép các nhà phát triển ứng dụng dễ dàng tích hợp chức năng tìm kiếm vào hệ thống của mình.
Từ phiên bản đầu tiên 0.01 được công bố vào tháng 3 năm 2000, đến khi Lucene trở thành một dự án chính thức của tổ chức Apache Jakarta và bắt đầu được phát triển với sự đóng góp của rất nhiều lập trình viên trên thế giới, và cho đến thời điểm hiện nay, Lucene đã trở thành một thư viện truy vấn thông tin thật sự ổn định và hiệu quả. Lucene đã được sử dụng đế phát triển ứng dụng tìm kiếm ở hàng loạt các tổ chức và công ty như Hewlett-Packard, FedEx, Tạp chí New Scientist, MIT’s OpenCourseWare, từ điển bách khoa toàn thư Britannica, môi trường phát triển tích hợp Eclipse…
Sự thành công của Lucene có được là do nó đã cung cấp cho nhà phát triển những chức năng nổi bật sau đây:
- Là mã nguồn mở được thuần túy phát triển bằng Java, mà mọi người đều có quyền sử dụng và mở rộng.
- Cung cấp một giao diện lập trình đơn giản để phát triển ứng dụng tìm kiếm.
- Loại bỏ các từ vô nghĩa (Stop-Word) và đưa về từ gốc (Stemming).
- Hỗ trợ cơ chế để xử lý các ngôn ngữ khác tiếng Anh.
- Hỗ trợ khả năng cập nhập và tìm kiếm trên chỉ mục một cách đồng thời.
- Cung cấp các chức năng truy vấn đặc biệt như theo nhóm từ, theo biểu thức Boolean, gần đúng, trên nhiều chỉ mục cùng lúc.
Một số ứng dụng tiêu biểu sử dụng Lucence là:
- Zeo: cho phép người dùng tìm kiếm trên toàn bộ nội dung email đã được lưu trữ.
- Web Nutch: động cơ tìm kiếm trên Web được phát triển bởi chính Doug Cutting và Apache Jakarta.
- KnowLEX EN: cung cấp chức năng tìm kiếm tài liệu trong bách khoa toàn thư Wikipedia.
- Aduna AutoFocus: cho phép người dùng tìm kiếm tài liệu trên cây thư mục của máy tính cá nhân.
- Kowari: cho phép quản lý và truy vấn cơ sở tri thức RDF.
- KIM: hỗ trợ tìm kiếm tài liệu theo thực thể có tên.