Trang wiki, http://wiki.apache.org/solr/DataImportHandler giải thích cách lập chỉ mục dữ liệu bằng cách sử dụng DataImportHandler. Nhưng ví dụ này sử dụng lệnh để bắt đầu quá trình nhập. Làm thế nào tôi có thể lên lịch một công việc để làm điều này một cách thường xuyên? CLàm cách nào để lên lịch nhập dữ liệu trong Solr
Trả lời
Trên UNIX/Linux, cron jobs là bạn của bạn! Trên Windows, có Task Scheduler.
CẬP NHẬT
Để làm điều đó từ mã Java, vì đây là một yêu cầu GET đơn giản, bạn có thể sử dụng thư viện HTTP Client. Xem this tutorial về cách sử dụng GetMethod.
Nếu bạn cần gửi các yêu cầu khác tới Solr theo chương trình, có thể bạn nên sử dụng Solrj library. Nó cho phép để gửi tất cả các lệnh cơ bản để Solr kiến nó có thể được cấu hình để truy cập vào bất cứ xử lý Solr:
CommonsHttpSolrServer server = new CommonsHttpSolrServer("http://localhost:8983/solr");
ModifiableSolrParams params = new ModifiableSolrParams();
params.set("command", "full-import");
QueryRequest request = new QueryRequest(params);
request.setPath("/dataimport");
server.request(request);
tôi đã có thể làm cho nó hoạt theo các bước:
Tạo lớp ApplicationListener, HTTPPostScheduler và SolrDataImportProperties (mã nguồn được liệt kê trên http://wiki.apache.org/solr/DataImportHandler#Scheduling). Tôi tin rằng các lớp học này chưa được cam kết.
Thêm người nghe sau đây để file web.xml Solr:
<listener> <listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class> </listener>
Configure dataimport.properties theo hướng dẫn trong trang wiki.
Có một bản vá tươi bởi Esteve Fernandez mà làm công việc toàn bộ điều trên Unix/Linux: https://issues.apache.org/jira/browse/SOLR-2305
@Eldo Nếu bạn đang đi để cần sự giúp đỡ nhiều hơn nữa trong việc xây dựng JAR của riêng bạn chỉ cần thả một câu hỏi đây ...
đơn giản thêm dòng này vào crontab của bạn với crontab -e
lệnh:
0,30 * * * * /usr/bin/wget http://<solr_host>:8983/solr/<core_name>/dataimport?command=full-import
chí này hoàn toàn nhập khẩu mỗi 30 phút. Thay thế <solr_host>
và <core_name>
bằng cấu hình
Đây là một chút cũ, nhưng tôi đã tạo ứng dụng Windows WPF và dịch vụ để giải quyết vấn đề này, như sử dụng công việc CRON và Task Scheduler hơi khó khăn để duy trì nếu bạn có nhiều lõi/môi trường.
https://github.com/systemidx/SolrScheduler
Bạn về cơ bản chỉ cần thả trong một tệp JSON trong một thư mục cụ thể và nó sẽ sử dụng một khách hàng REST để ban hành lệnh để Solr.
Chúng tôi có thể sử dụng Quartz để làm điều đó, giống như crontab trên Linux. Nhưng về cơ bản, TimerTask được nhúng trong jdk là đủ cho bạn.
- 1. solr Trình xử lý nhập dữ liệu cho MongoDB
- 2. Làm cách nào để liệt kê các công việc đã lên lịch chạy trong cơ sở dữ liệu của tôi?
- 3. Cách xử lý dữ liệu quan hệ trong Solr
- 4. Cách tốt nhất để lập chỉ mục dữ liệu bảng cơ sở dữ liệu trong Solr?
- 5. cách nhận dữ liệu nhập từ cửa sổ bật lên
- 6. Làm cách nào để đăng dữ liệu lên URL từ xa trong ASP cổ điển?
- 7. Làm cách nào để thêm dữ liệu vào lịch Google theo chương trình trong Android?
- 8. Làm cách nào để xuất bản nguồn cấp dữ liệu sự kiện động cho lịch google?
- 9. Cách lưu trữ dữ liệu lịch sử
- 10. Cách xóa tất cả dữ liệu khỏi solr và hbase
- 11. Làm cách nào để tạo biểu mẫu nhập dữ liệu động trong ứng dụng WPF?
- 12. Làm thế nào để nhập dữ liệu vào SAP
- 13. Làm thế nào để lên lịch các luồng Java
- 14. Làm cách nào để KHÔNG truy vấn trong Solr?
- 15. Làm cách nào để POST đối tượng dữ liệu JSON lên máy chủ trong iOS5?
- 16. Làm cách nào để thiết kế cơ sở dữ liệu với Lịch sử sửa đổi?
- 17. Làm cách nào để nhập dữ liệu vào cơ sở dữ liệu mysql qua bàn làm việc mysql?
- 18. Làm cách nào để nhận dữ liệu nhập của người dùng trong Clojure?
- 19. Làm cách nào để thoát khỏi dữ liệu nhập vào một db MySQL trong Python3?
- 20. Làm cách nào để nhập bảng từ cơ sở dữ liệu khác trong sqlite?
- 21. Làm cách nào để nhập dữ liệu trong SQL Compact Edition?
- 22. Cách dễ dàng để đồng bộ dữ liệu giữa MongoDB và Apache Solr
- 23. Làm cách nào để nhập tài liệu từ vào wiki?
- 24. Làm thế nào để bạn dịch dữ liệu trong đối tượng FileReader thành dữ liệu biểu mẫu để tải lên?
- 25. Cách lên lịch truy vấn MySQL?
- 26. Làm thế nào để lên lịch một tác vụ với người dùng được đăng nhập hay không trong PowerShell?
- 27. Làm thế nào để sao lưu cơ sở dữ liệu Solr?
- 28. Cách đăng dữ liệu lên trang web
- 29. Tôi làm cách nào để lên lịch một chuỗi cụ thể trong Blackberry
- 30. Tôi làm cách nào để lên lịch tác vụ trong ứng dụng WinForms?
Cảm ơn Pascal. Câu hỏi của tôi khác. Tôi cần kích hoạt lệnh http: //: /solr/dataimport? Command = full-import cho thao tác lập chỉ mục. Làm thế nào tôi có thể làm điều đó bằng cách sử dụng một lớp java? (như chống gõ trong lệnh trong cửa sổ trình duyệt?) –
Eldo
xem các cập nhật của tôi trong câu trả lời –
Ngoài ra, nếu bạn đang làm điều đó từ cron, một wget http://127.0.0.1:8983/solr/dataimport?command=full-import hoạt động tuyệt vời! –