11/08/2018, 22:54

Hướng dẫn cài đặt và tìm hiểu về Apache Solr

Cài đặt, cấu hình, một số đặc điểm chính(Phần 1) Solr là một platform (nền tảng) mã nguồn mở dựa trên Apache Lucence có khả năng cung cấp sử dụng Lucene Java làm thư viện cho việc index( đánh chỉ số) và search( tìm kiếm) dữ liệu .Solr nhập dữ liệu dưới dạng XML thông qua HTTP, hoặc sử dụng thư ...

Cài đặt, cấu hình, một số đặc điểm chính(Phần 1)

Solr là một platform (nền tảng) mã nguồn mở dựa trên Apache Lucence có khả năng cung cấp sử dụng Lucene Java làm thư viện cho việc index( đánh chỉ số) và search( tìm kiếm) dữ liệu .Solr nhập dữ liệu dưới dạng XML thông qua HTTP, hoặc sử dụng thư viện để nhập khối lượng lớn dữ liệu. Người dùng có thể truy vấn dữ liệu này thông qua HTTP GET và nhận về một kết quả dạng XML. Solr chạy bên trong một Java servlet container như Tomcat, Jetty hay Resin.

alt

Hình 1: Cấu trúc chung của Apache Solr

Yêu cầu cài đặt

Điều kiện tiên quyết sử dụng solr phải cần những công cụ sau

  • Sử dụng phiên bản Java 1.7 hoặc các bản về sau. Download Java từ một trong các nguồn sau Oracle, Open JDK hoặc IBM

  • Gnu's GCJ thì không được hỗ trợ cũng như tương thích với Solr

  • Source của một apache Solr release

**Quá trình cài đặt java, download apache solr thành công (nên download phiên bản .zip), tiếp tục thực hiện các bước sau: **

Bước đầu tiên giải nén solr, và cd vào thư mục codefrag . (Chú ý rằng thư mục cha của example có tên là khác nhau tùy vào từng phiên bản.) Ví dụ với shell in UNIX, Cygwin, hoặc MacOS:

lucct@ubuntu ~ $ unzip -q solr-4.10.1.zip lucct@ubuntu ~ $ cd solr-4.10.1/example/

Để khởi động Solr thì ta sử dụng lệnh như sau:

lucct@ubuntu example $ java -jar start.jar 0 [main] INFO org.eclipse.jetty.server.Server – jetty-8.1.10.v20130312 74 [main] INFO org.eclipse.jetty.deploy.providers.ScanningAppProvider – Deployment monitor /home/lucct/solr-4.10.1/example/contexts at interval 0 142 [main] INFO org.eclipse.jetty.deploy.DeploymentManager – Deployable added: /home/lucct/solr-4.10.1/example/contexts/solr-jetty-context.xml 4093 [main] INFO org.eclipse.jetty.webapp.StandardDescriptorProcessor – NO JSP Support for /solr, did not find org.apache.jasper.servlet.JspServlet ...............................................................e 6811 [main] INFO org.apache.solr.update.UpdateShardHandler – Creating UpdateShardHandler HTTP client with params: socketTimeout=0&connTimeout=0&retry=false 6813 [main] INFO org.apache.solr.logging.LogWatcher – SLF4J impl is org.slf4j.impl.Log4jLoggerFactory ............................................................... 7452 [coreLoadExecutor-5-thread-1] INFO org.apache.solr.core.SolrResourceLoader – Adding 'file:/home/lucct/solr-4.10.1/contrib/extraction/lib/metadata-extractor-2.6.2.jar' to classloader 7452 [coreLoadExecutor-5-thread-1] INFO org.apache.solr.core.SolrResourceLoader – Adding 'file:/home/lucct/solr-4.10.1/contrib/extraction/lib/juniversalchardet-1.0.3.jar' to classloader 7453 [coreLoadExecutor-5-thread-1] INFO org.apache.solr.core.SolrResourceLoader – Adding 'file:/home/lucct/solr-4.10.1/contrib/extraction/lib/tika-xmp-1.5.jar' to classloader ............................................................... 15051 [searcherExecutor-6-thread-1] INFO org.apache.solr.spelling.suggest.SolrSuggester – reload() 15051 [searcherExecutor-6-thread-1] INFO org.apache.solr.spelling.suggest.SolrSuggester – build() 15079 [searcherExecutor-6-thread-1] INFO org.apache.solr.core.SolrCore – [collection1] Registered new searcher Searcher@14b3fd5d[collection1] main{StandardDirectoryReader(segments_1:1:nrt)}

Khởi động solr hoàn tất và ứng dụng chạy trên cổng 8983, sử dụng thiết bị đầu cuối của bạn để hiện thị các thông tin của solr

Bạn có thể thấy solr chạy bằng cách loading đường dẫn http://localhost:8983/solr/ trong trình duyệt web của bạn.

alt

Hình 2: Cài đặt thành công apache solr

Config

Có 2 file config chính là: schema.xml và solrconfig.xml nằm trong thư mục "/home/lucct/solr-4.10.1/example/solr/collection1/conf"

  • Schema.xml dùng để config các trường dữ liệu, cách lưu trữ dữ liệu để sau này ta lưu data vào đó.
  • Solrconfig.xml dùng để config các chức năng (cụ thể ở đây là các request hanlders và các tính năng khác nữa).

Có thể truy cập file Solrconfig.xml bằng cách vào Admin của Solr (view-only): http://localhost:8983/solr/#/collection1/config

Các chức năng cơ bản của Solr

  • Khả năng tìm kiếm văn bản toàn diện(Full-Text Search) giống kiểu Google.
  • Chỉnh sửa để hiệu năng tốt hơn.
  • Dựa trên các chuẩn mở trong giao tiếp với các hệ thống khác – XML, JSON và HTTP
  • Quản trị dưới dạng giao diện HTML đơn giản
  • Thống kê dưới dạng JMX
  • Khả năng mở rộng ra nhiều server Solr
  • Cấu hình đơn giản dễ dàng với định dạng XML
  • Có khả năng bổ sung các phần mở rộng(plugin) mới. Ví dụ như phân tích mở rộng tiếng Việt: Bắt lỗi chính tả, bỏ dấu,…
  • Cho phép highlighting kết quả tìm kiếm, như cách mà google hiện thị thông tin tóm tắt về kết quả mà ở đó câu truy vấn được in đậm
  • Có thể xây dựng rất nhiều ứng dụng khác mà một trang tìm kiếm cần như: autosuggestion, spellchecking, xây dựng tagcloud, phân loại kết quả clustering (như Bing làm), trending keywords, category navigation, các kết quả liên quan, nhóm kết quả (field collapsed) …
  • Cho phép scale hệ thống một cách dễ dàng khi bạn có một lượng lớn dữ liệu mà không đủ chứa trên một máy chủ hay phải phục vụ rất nhiều người dùng đồng thời.
  • Solr cũng có thể dùng như CSDL NoSQL hay như cache layer, dùng cho các listing cần performance tốt.
  • Solr cũng sắp hỗ trợ realtime cho phép tìm kiếm ngay kết quả sau khi index. Điều nàyđặc biệt khó khi index rất lớn. Hiện tại Solr cho phép kết quả rât nhanh, nhưng phải hy sinh thời gian index. Với dữ liệu lớn có khi bạn phải mất 30 phút chỉ để cập nhật được một tài liệu.
  • Solr hỗ trợ rất nhiều công cụ để tinh chỉnh kết quả tìm kiếm, bằng tất cả các thông tin mà bạn cung cấp làm sao để kết quả trả về là tốt nhất. Ví dự như đánh trọng số các trường, click log, số lượt view, …

0