2009-06-16 43 views

Trả lời

18

Nếu bạn định hợp tác với Lucene, tôi sẽ mua một cuốn sách hay bao gồm từ A đến Z. Lucene có một đường cong học tập rất dốc (theo ý kiến ​​của tôi). Không chỉ biết cách tìm kiếm điều quan trọng của bạn - nó cũng về việc lập chỉ mục . Thực hiện tìm kiếm cơ bản thật dễ dàng, nhưng việc tạo một chỉ mục bao gồm hàng triệu bản ghi dữ liệu và vẫn có thể thực hiện tìm kiếm nhanh trên màn hình có thể nhưng khá khó. Không có hướng dẫn nào giúp bạn biết điều đó.

Tôi muốn giới thiệu Lucene in Action, Second Edition bởi Michael McCandless, Erik Hatcher và Otis Gospodnetić. Mặc dù nó được viết cho Lucene chứ không phải Lucene.NET, nhưng đó không phải là vấn đề vì thuật ngữ và api về cơ bản giống nhau.

Tuy nhiên, nếu bạn chỉ muốn thử nhanh, bạn có thể đọc this site. Tên nói lên tất cả :-)

+1

Tôi đã xem lại cuốn sách Lucene in Action và tôi phải đồng ý rằng đó là một tome đơn tốt để tìm hiểu mọi thứ Lucene! Hầu hết các khái niệm lý thuyết áp dụng cho Lucene.NET tuy nhiên việc triển khai mã sẽ yêu cầu một số suy nghĩ sáng tạo! –

+1

Tôi thấy ấn bản thứ 2 trên Lucene in Action vừa xuất hiện. Bất kỳ suy nghĩ về nếu đó là gần hơn hoặc xa hơn để Lucene.NET sau đó phiên bản đầu tiên? –

9

Chúng tôi thường sử dụng Lucene.NET khi dữ liệu rất lớn và cần có thời gian phản hồi siêu nhanh để đọc. Chúng tôi thường dính dữ liệu vào đó chúng ta cần phải tìm kiếm cũng như chìa khóa để cho phép chúng tôi ánh xạ kết quả của chúng tôi trở lại bảng cơ sở dữ liệu có các chi tiết còn lại. Điều này sau đó cho phép chúng tôi tìm kiếm một người dùng (trong trường hợp của chúng tôi) kiểm tra sự tham gia trong quá khứ của họ. Đây không chỉ là tìm kiếm tên người dùng mà là một tìm kiếm lặp lại qua các chi tiết khác nhau đang cố gắng tìm nếu có bất kỳ trường hợp nào khác của người dùng đó (mặc dù ở một dạng khác). Một ví dụ về điều này, chúng tôi tìm ID người dùng (từ một hệ thống), ID của họ từ một hệ thống khác, có thể là ID từ hệ thống nhà cung cấp, GUID cookie flash, GUID cookie trang web, v.v. tìm các phiên bản khác của số nhận dạng đó cho các phiên bản người dùng khác. Điều này cho phép chúng tôi loại trừ mục nhập của người dùng vào một trong nhiều hệ thống (vì sự tham gia của họ vào bất kỳ hệ thống nào chỉ được phép một lần trong 24 giờ). Trong SQL này alogrithm (mà tôi đã mơ hồ về) sẽ mất mãi mãi! Trong Lucene.NET phải mất chưa tới một giây. Lucene có nhiều khả năng tìm kiếm hơn SQL Server. Điều mà nó hút là viết hoặc cập nhật chỉ mục của bạn. Điều này thường được thực hiện như một công việc ... tất cả cùng một lúc. Tuy nhiên, nếu bạn cần viết chỉ mục cập nhật nó trong thời gian thực, bạn cần phải viết một số mã thông minh để đảm bảo rằng nó được viết vào một thời trang bị khóa (nghĩ xếp hàng với singleton) hoặc mã của bạn sẽ chồng lên nhau và phát nổ!

Tôi bao gồm việc sử dụng Lucene.NET trong sách của mình (ASP.NET Social Networking) và bạn có thể tìm thấy rất nhiều trợ giúp here.

1

Vấn đề với Lucene.NET là nó không có một cộng đồng tích cực như tiêu chuẩn (java) Lucene - vì vậy nó cũng giống như luôn luôn chạy một cách hiệu quả một phiên bản cũ của Lucene. Mặc dù chúng tôi thích .NET, chúng tôi quyết định sử dụng phiên bản Java của Lucene vì lý do này. Nếu bạn sử dụng Solr cũng rất dễ dàng để tích hợp.

1

'Lucene in Action' là cuốn sách hay nhất để tìm hiểu cách lập chỉ mục và cách tìm kiếm. Nó thậm chí bao gồm các kỹ thuật tìm kiếm nâng cao và viết phân tích tùy chỉnh. Mặc dù cuốn sách dành cho Java ... Tôi đã thực hiện tìm kiếm và lập chỉ mục trong .net bằng cách sử dụng cuốn sách này.

1

Simon Green có một loạt ba phần tốt đẹp về cách ông thiết lập Lucene.Net để làm việc với thực hiện NHibernate của mình. Part one introduces the series. Part twopart three thảo luận chi tiết kỹ thuật.

Tôi thấy các mẫu mã Lucene.Net rất hữu ích, mặc dù dự án của tôi không sử dụng NHibernate.

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