Lucene là gì? Tìm hiểu về Lucene và Elasticsearch

Chúng tôi vui mừng chia sẻ kiến thức về từ khóa Lucene la gi và hy vọng rằng nó sẽ hữu ích cho bạn đọc. Bài viết tập trung trình bày ý nghĩa, vai trò và ứng dụng của từ khóa này trong việc tối ưu hóa nội dung trang web và chiến dịch tiếp thị trực tuyến. Chúng tôi cung cấp các phương pháp tìm kiếm, phân tích và lựa chọn từ khóa phù hợp, cùng với các chiến lược và công cụ hữu ích. Hy vọng rằng thông tin mà chúng tôi chia sẻ sẽ giúp bạn xây dựng chiến lược thành công và thu hút lưu lượng người dùng. Xin chân thành cảm ơn sự quan tâm và hãy tiếp tục theo dõi blog của chúng tôi để cập nhật những kiến thức mới nhất.

Lucene Core là một thư viện Java cung cấp các tính năng lập chỉ mục và tìm kiếm mạnh mẽ, cũng như kiểm tra chính tả và analysis/tokenization

Bạn Đang Xem: Lucene là gì? Tìm hiểu về Lucene và Elasticsearch

Giới thiệu về Lucene

Lucene được phát triển bởi Dough Cutting vào tháng 8 năm 2000, ngày nay đang rất được Apache phát triển và tương trợ.

Lucene là phần mềm mã nguồn mở, dùng để làm phân tích, đánh chỉ mục và tìm kiếm thông tin với hiệu suất cao bằng Java. Lucene được phát triển trước nhất bởi Doug Cutting được giới thiệu trước nhất vào tháng 8 năm 2000. Tháng 9 năm 2001 Lucene gia nhập vào tổ chức Apache và ngày nay được Apache phát triển và quản lý. Cần lưu ý rằng Lucene không phải là một ứng dụng mà chỉ là một dụng cụ đặc tả API cấp thiết cho việc một search engine.

Lucene tương trợ cho việc đánh index- chỉ mục và tìm kiếm. Tài liệu tìm kiếm có thể là tập tin dạng PDF, Word hay HTML, Json,… hoặc tài liệu trong các hệ quản trị tài liệu như MS SQL, SQL server hay MySQL.

Lucene khai mạc được phát triển trên tiếng nói java, đến nay thì được phát triển bằng nhiều ngôn ngũ như Perl, C++/C#, Python, Ruby, PHPĐược xây dựng và thiết kế theo phía hướng đối tượng người dùng nên các API cũng được cung cấp theo hình thức hướng đối tượng người dùng.

Lucene là gì?

Mặc dù thiết kế và xây dựng lúc đầu từ java nhưng hiện nay đã và đang có một số phiên bản cho những tiếng nói khác: .NET, C++, Perl.

Những sản phẩm sử dụng Lucene:

Beagle dùng một nhánh của Lucene phát triển trong C#, mang tên gọi Lucene.Net làm chỉ mục.

– Docco dùng Lucene trong việc tìm kiếm trong máy tính thành viên.

– CNET dùng Lucene để tìm kiếm list thể loại sản phẩm. – LjFind dùng Lucene để tìm kiếm hơn 110.000.000 bài post ở LiveJournal. – Nutch là một máy tìm kiếm dùng Lucene.

– Red-Piranha cũng là một máy tìm kiếm khác dựa trên Lucene – Wikipedia dùng Lucene để tìm kiếm nội dung toàn bộ văn bản.

Xem Thêm : Phá trinh là gì?

– Trình duyệt web Flock dùng Clucene, một phiên bản trong C++, để tìm kiếm toàn văn hoặc tìm kiếm lịch sử dân tộc của trình duyệt.

– Ants P2P dùng Lucene trong lựa chọn tìm kiếm trong lớp học san sớt file khuyết danh của nó.

– Solr một sever tìm kiếm nguồn mở dựa trên Lucene với XML/HTTP APIs, lưu trữ (cache), sao chép, và một giao diện web quản trị.

– LIRE – Lucene Image Retrieval Thư viện CBIR, dùng máy tìm kiếm Lucene.

Sự khác biệt giữa Lucene và Elasticsearch là gì

Elasticsearch là một sever web dựa trên JSON , phân tán , được xây dựng trên Lucene. Mặc dù đó là Lucene, người đang thực hiện công việc thực tế phía dưới, Elasticsearch cung cấp cho tất cả chúng ta một lớp thuận tiện hơn Lucene. Mỗi phân đoạn được tạo ra trong Elasticsearch là một thể hiện Lucene riêng. Vì vậy, để tóm tắt

Elasticsearch được xây dựng trên Lucene và cung cấp API REST dựa trên JSON để tham khảo các tính năng của Lucene. Elasticsearch cung cấp một khối hệ thống phân tán trên đỉnh Lucene . Một khối hệ thống phân tán không phải là thứ mà Lucene nhận thức được hoặc được xây dựng cho. Elasticsearch cung cấp sự trừu tượng hóa của cấu trúc phân tán.

Lucene là gì?

Elasticsearch cung cấp các tính năng tương trợ khác ví như nhóm luồng, hàng đợi, API giám sát nút / cụm, API giám sát tài liệu, quản lý cụm, v.v.

Tính sẵn sàng cao: Elasticsearch được phân phối, để nó có thể quản lý sao chép tài liệu, có tức là có nhiều bản sao tài liệu trong cụm của bạn. Điều này được cho phép tính sẵn sàng cao.

DSL truy vấn mạnh mẽ : Elasticsearch cung cấp cho chúng tôi, giao diện JSON để đọc và viết các truy vấn trên Lucene. Nhờ Elasticsearch, chúng ta có thể viết các truy vấn phức tạp mà không nên tìm hiểu cú pháp Lucene.

Schemaless (Schema-Không tính tiền): Các trường (tên, cặp giá trị) schema không phải được xác định trước. Khi chúng ta lập chỉ mục tài liệu, Elasticsearch có thể tự động hóa tạo sơ đồ khi chạy, như yêu thuật.

Lucene là một thư viện dụng cụ tìm kiếm . Bạn muốn sử dụng nó để xây dựng dụng cụ tìm kiếm của riêng mình: một đối thủ cạnh tranh mới của Elasticsearch hoặc Solr hoặc một chiếc gì đó hẹp cho trường hợp sử dụng của bạn (ví dụ: phân tích văn bản).

Elasticsearch là một dụng cụ tìm kiếm . Hồ hết mọi người sử dụng nó để tổng hợp nhật ký, tìm kiếm sản phẩm hoặc một biến thể của hai điều này (ví dụ: phân tích phương tiện truyền thông xã hội hoặc tìm người dân có liên quan cho một số tiêu chí tìm kiếm). Nó được xây dựng trên đỉnh Lucene, vì vậy nó phơi bày hồ hết (mặc dù không phải tất cả) các tính năng của nó . Nó cũng thêm rất nhiều trên đầu trang, đáng kể nhất:

Xem Thêm : DongnaiArt

Xem thêm: Tìm hiểu về Elasticsearch

  • API REST
  • truy vấn DSL
  • khối hệ thống phân tán (shending, nhân rộng, quản lý cụm)
  • khía cạnh / tập hợp
  • các tính năng bổ sung cho việc sử dụng phổ thông (ví dụ: xử lý nhập ) và quản lý (API để theo dõi các số liệu liên quan , sao lưu và khôi phục, v.v.)

Lucene là gì?

Chức năng của Lucence

Thành phần chức năng chính của Lucene gồm có hai phần: Thành phần tạo chỉ mục và thành phần tìm kiếm. Đây là hai thành phần quan trọng cho một khối hệ thống tìm kiếm thông tin.

Thành phần Tạo chỉ mục: Gồm có các chức năng xử lý và phân tích tài liệu để đánh chỉ mục. Lucene được cho phép thiết lập các trường thông tin cấp thiết để đánh chỉ mục phục vụ cho thành phần tìm kiếm, các thư viện phục vụ đánh chỉ mục mà Lucene tương trợ.

Thành phần Tìm kiếm: gồm có các phần chức năng xử lý tìm kiếm, trả về kết quả tìm kiếm cho tất cả những người dùng, thông qua biên dịch và so khớp để lấy về kết quả tốt nhất.

  • Đánh chỉ mục (Index): Trước tiên, Lucene giúp cho bạn phân loại chỉ mục, quản lý như các Document. Việc đánh chỉ mục được thực hiện qua những bước sau.

    • Trước tiên, thu thập tài liệu (Acquire content), ở bước này thường là crawler hoặc spider để thu thập tài liệu đánh chỉ mục.
    • Tiếp theo là bước xây dựng tài liệu (Build document). Ở bước này thì tài liệu thô thu nhập ở trên được chia thành các document và các trường text, nhưng các search engine vẫn chưa đánh chỉ mục luôn luôn được mà cần được chuyển sang phân tích tài liệu.
    • Phân tích tài liệu (Analyze document): Ở đây text được chia nhỏ thành các token, mỗi token được hiểu là một từ trong tài liệu. Document được xác định bởi dãy các token
    • Bước cuối cùng là đánh chỉ mục. Lucene cung cấp API đầy đủ cho việc đánh chỉ mục trở thành dễ dàng hơn.
  • Truy vấn (query): Khi người sử dụng trình lên 1 submit thì khối hệ thống search engine cần phân tích thành câu query cho khối hệ thống có thể hiểu, bước này gọi là (Build query). Lucene cung cấp gói QueryParser để biến câu truy vấn của người sử dụng thành câu query của khối hệ thống.Truy vấn có thể là các toán tử boolean hoặc các phép toán liên quan, hoặc tổng hợp, phân tích,…

  • Tìm kiếm (search): Là quá trình tra cứu và tìm ra kết quả phù phù hợp với câu truy vấn của người sử dụng và đưa ra kết quả. Ở đây thường query theo 3 mô hình: Mô hình toán tử Boolean, mô hình vector, mô hình xác suất. Những mô hình này đã được giới thiệu trong bài truy vấn thông tin (IR).

  • Display: Render các kết quả tìm kiếm sắp xếp theo trật tự phù hợp và hiển thị cho tất cả những người sử dụng. Ở đây, kết thúc một phiên tìm kiếm.

Sức mạnh của Lucene

Không phải dễ dàng mà người ta nói : Lucene có thể giúp cho bạn phát triển dụng cụ tìm kiếm “giống Google” với năng lực tìm kiếm mạnh mẽ và linh hoạ.Bởi những ưu điểm vượt bậc của cục thư viện này tương trợ cho việc lập index và tìm kiếm

Lucene là gì?

Hiện nay tồn tại rất nhiều hệ quản trị tương trợ cho kỷ thuật tìm kiếm Full Text, trong đó nổi lên 2 hệ quản trị lớn đó là MySQL và OracleTại sao lựa chọn Lucene thay vì hệ quản trị CSDL như MySQL cho yêu cầu bài toán bởi vì :

  1. Khác với MySQL, tài liệu được index phải được lưu trữ trong database, trong lúc đó Lucene chỉ tạo chỉ mục trên tài liệu hiện có. Bằng phương pháp này, Lucene có thể tạo chỉ mục cho tài liệu lưu trữ trong database, trong các thư mục của khối hệ thống tập tin. Hơn thế nữa, với việc dùng các plug-in về parsing, Lucene có thể đánh chỉ mục cho những tập tin pdf, html, MS Word, etc.
  2. Câu truy vấn của MySQL bị giới hạn bởi cú pháp của SQL query, trong lúc câu truy vấn của Lucene gần với những khối hệ thống information retrieval hơn. Với Lucene, chúng ta có thể dùng proximity search, fuzzy search, wildcard search và quan trọng nhất là term boosting có thể giúp rank các kết quả trả về theo mức độ liên quan (relevancy).
  3. Tốc độ của Lucene tốt hơn so với MySQL trong trường hợp tài liệu lớn.Ngoài ra một hệ quản trị cơ sở có tương trợ kỷ thuật full text nổi tiếng nữa đó là Oracle Enterprise.Và qua một số thử nghiệm trên cùng khối hệ thống máy tính và cùng 1 số lượng tài liệu giành được kết quả như sau :
  4. Về tốc độ – Lucene là nhanh hơn:
    1. Sever Oracle bổ sung thêm giấy phép CPU DB, mà là đến nay giá bán đắt hơn so với sever Lucene ứng dụng rẻ hơn và bộ nhớ nhiều hơn
    2. Chỉ số kích thước – chỉ số Lucene nhỏ
    3. Tính điểm thuật toán: Không thể tùy chỉnh với văn bản Oracle, còn Lucene có thể
    4. Tiến bộ Lucene : bổ sung thêm một số trường (term) Fuzzy, Synonym, Near tìm kiếm nhanh lên đáng kể
    5. Hiện nay rất nhiều ứng dụng hay website nổi tiếng sử dụng Lucene làm thư viện tìm kiếm như thể Thư viện Wiki,HP, eclipe.

Trong series này tôi sẽ viết các bài khác gồm:

  1. Kibana là gì? Tìm hiểu về Kibana và sử dụng một cách hiệu quả
  2. Grafana là gì ? Hướng dẫn cấu hình thiết lập Grafana cho DevOps tối ưu hiệu năng
  3. MongoDB là gì? Cách cấu hình thiết lập và tìm hiểu cơ bản về MongoDB
  4. Redis là gì? Vì sao cần hiểu và sử dụng Redis để tối ưu hiệu xuất
  5. Apache Solr: Hướng dẫn cấu hình thiết lập và cách sử dụng Apache Solr
  6. Elasticsearch là gì
  7. Logstash là gì? Tùy chỉnh cấu hình sử dụng và làm chủ Logstash trong một nội dung bài viết

You May Also Like

About the Author: v1000