2010-09-27 47 views
15

Có thể sử dụng Lucene làm kho lưu trữ dữ liệu chính thức (như các biến thể nosql khác (mongo, đi văng) hay không.Lucene làm lưu trữ dữ liệu

Tôi biết có một số hạn chế như tài liệu mới được cập nhật bởi một người lập chỉ mục sẽ không được hiển thị trong chỉ mục khác. Vì vậy, chúng tôi cần phải khởi động lại chỉ mục để nhận các bản cập nhật.

Nhưng tôi vấp ngã khi solr gần đây, có vẻ như những vấn đề này được tránh bởi một số loại sao chụp nhanh. Vì vậy tôi nghĩ tôi có thể sử dụng lucene như một kho dữ liệu vì nó cũng sử dụng cùng một loại tài liệu (dựa trên JSON) được sử dụng bởi mongo và couch nội bộ để quản lý tài liệu, và thuật toán lập chỉ mục đã được chứng minh của nó tìm nạp các bản ghi siêu nhanh.

Nhưng tôi tò mò có ai đã thử điều đó trước khi ..? nếu không phải lý do nào không chọn cách tiếp cận này.

+1

Tôi không biết nhiều về Lucene, nhưng tôi nghĩ nó chủ yếu là một người lập chỉ mục; rằng nó không lưu trữ tài liệu, nó chỉ lập chỉ mục chúng. Vì vậy, bạn cần một cửa hàng dữ liệu bên ngoài của Lucene anyway ... Tôi có ý nghĩa gì không? – pascal

+1

@pascal, sai của nó .. lucene cũng có thể lưu trữ tài liệu. Khi chúng tôi xác định các trường, chúng tôi có thể chỉ định liệu chúng tôi có cần lưu trữ mục hay chỉ ... chỉ số – RameshVel

+2

Xem http://stackoverflow.com/questions/3215029/nosql-mongodb-vs-lucene-or-solr-as-your -database/3216550 # 3216550 – Mikos

Trả lời

4

Tôi chỉ làm việc với Solr, dẫn xuất Lucene (và tôi khuyên bạn nên sử dụng Solr cho bất kỳ ai) nên ý kiến ​​của tôi có thể hơi thiên vị nhưng có thể sử dụng Solr làm kho dữ liệu, tuy nhiên sẽ không hữu ích nếu không có thứ gì đó vĩnh viễn hơn trong nền.

Sự cố bạn có thể gặp phải là nhập dữ liệu vào Solr không đảm bảo bạn sẽ lấy lại dữ liệu khi bạn mong đợi. Baring việc sử dụng faceting khá nghiêm ngặt, bạn có thể gặp phải vấn đề lấy dữ liệu của bạn chỉ đơn giản bởi vì các lập chỉ mục đã quyết định gộp kết quả của bạn theo một cách nhất định.

Tôi đã thử nghiệm một chút với cách tiếp cận này nhưng lợi ích thực sự duy nhất tôi thấy là trong trường hợp bạn muốn chỉ mục tìm kiếm ở phía máy khách để họ có thể tìm kiếm nhanh chóng trong nội bộ cơ sở dữ liệu để có thông tin mở rộng.

Đề xuất của tôi là sử dụng solr cho tìm kiếm và sau đó đưa nó trở lại một mẫu dữ liệu ngắn mà bạn có thể muốn cũng như chỉ mục để truy vấn thêm trong kho dữ liệu truyền thống.

TL; DR: Có, nhưng tôi không khuyên bạn nên sử dụng.

15

Ngoài ra còn có vấn đề về độ bền. Trong khi một chỉ số Lucene không nên bị hỏng bao giờ hết, tôi đã nhìn thấy nó xảy ra. Và cách tiếp cận mà Lucene thực hiện để sửa chữa một chỉ mục bị hỏng là "vứt bỏ nó đi và xây dựng lại từ dữ liệu ban đầu". Điều này có ý nghĩa hoàn hảo cho công cụ lập chỉ mục. Nhưng nó đòi hỏi bạn phải có dữ liệu được lưu trữ ở một nơi khác.

+0

thats a good point ... – RameshVel

3

The Guardian uses Solr as their data store. Bạn có thể thấy một số lý do của họ trong trình chiếu đó.

Trong mọi trường hợp, tôi cho rằng trang web của họ bị buôn bán rất nhiều (chắc chắn nhiều hơn bất kỳ thứ gì tôi làm), vì vậy tôi nghĩ tôi cảm thấy thoải mái khi nói rằng Solr có thể sẽ làm việc cho bạn. .

+0

Theo trình chiếu, Guardian vẫn sử dụng kho lưu trữ dữ liệu quan hệ. Solr được sử dụng làm cơ sở dữ liệu hỗ trợ API của họ. – anon

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