2012-01-16 43 views
10

Tôi muốn sử dụng Lucene để cung cấp khả năng tìm kiếm văn bản đầy đủ trên một số đối tượng java của tôi được lưu trữ với EclipseLink trong cơ sở dữ liệu Postgresql của tôi.Làm thế nào để sử dụng Lucene và JPA?

Tôi thấy Hibernate có một giải pháp tích hợp cho Lucene được gọi là Hibernate Search, nhưng tôi không thể tìm thấy bất cứ điều gì cho EclipseLink. Có một giải pháp trên mạng cho EclispeLink? nếu không, tôi có một ý tưởng mơ hồ về những gì tôi nên làm để xử lý lập chỉ mục Lucene khi thêm và xóa các đối tượng nhưng tôi thực sự sẽ đánh giá cao nếu ai đó có thể cung cấp cho tôi một hướng dẫn tốt về chủ đề này.

Cảm ơn trước,

Thomas

Trả lời

6

Có WS Compass. Tuy nhiên, đó là một dự án một người đàn ông, và nhà phát triển đó ngừng làm việc trên nó vào năm 2009. Anh chuyển sang một dự án một người khác, được gọi là ElasticSearch.

Dự án đó là một công cụ tìm kiếm độc lập, cạnh tranh với Apache Solr ... chứ không phải là một thư viện được nhúng cạnh tranh với Apache Lucene và Hibernate Search.

Thật không may, tôi không thực sự biết về bất kỳ lựa chọn thay thế nghiêm trọng nào khác để tích hợp EclipseLink với Apache Lucene. EclipseLink đã tập hợp rất nhiều tâm trí kể từ khi Oracle đổi tên từ TopLink, cho nó đi, và tuyên bố nó là một thực hiện tham khảo. EclipseLink MOXy là một triển khai JAX-B tuyệt vời với một số phần mở rộng thực sự thú vị. Tuy nhiên, để tương tác với cơ sở dữ liệu lõi ... Hibernate vẫn là sự triển khai JPA trưởng thành và được chấp nhận thêm một dặm.

Mặt khác, trình bao bọc Tìm kiếm Hibernate cho Lucene hiện hỗ trợ sử dụng chế độ Hibernate ở chế độ JPA 2 thay vì API cổ điển của nó. Theo tôi, nó tích hợp một chút sạch hơn với JPA chứ không phải là Hibernate API cũ. Vì vậy, trừ khi bạn đang sử dụng các phần mở rộng EclipseLink độc quyền mà bạn đã đăng nhập, bạn có thể xem xét trao đổi nhà cung cấp JPA của bạn nếu bạn muốn tích hợp Lucene dễ dàng. Nếu các lớp thực thể của bạn đã được chú giải JPA, nó sẽ là một vấn đề đơn giản khi cập nhật tệp persistence.xml (và MOM POM của bạn, hoặc tuy nhiên bạn quản lý các phụ thuộc JAR của bạn).

+0

Cảm ơn. Tôi đã xem xét tất cả những điều này. Tôi nghĩ rằng tôi sẽ chuyển sang Hibernate thực sự ... Nó cũng có hỗ trợ cho các truy vấn không gian và nhiều hơn nữa mà tôi cần và EclipseLink tiếc là không hỗ trợ. – Thomas

+0

Đó là năm 2017 và Elasticsearch là rất lớn. Tôi tìm thấy hướng dẫn này, Elasticsearch và Hibernate, rất thích hợp: https://www.youtube.com/watch?v=ufaI51o_7WI – Max

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