Tôi đang mã hóa một số thử nghiệm cho ứng dụng chỉ mục solr-indexer của mình. Sau khi thực hành thử nghiệm tốt nhất, tôi muốn viết mã tự phụ thuộc, chỉ cần tải schema.xml
và solrconfig.xml
và tạo cây dữ liệu tạm thời cho các thử nghiệm tìm kiếm chỉ mục. Khi ứng dụng được viết nhiều nhất trong java, tôi đang làm việc với thư viện SolrJ, nhưng tôi đang gặp vấn đề (tốt, tôi bị lạc trong vũ trụ của corecontainers-coredescriptor-coreconfig-solrcore ...) Bất cứ ai cũng có thể đặt ở đây một số mã để tạo ra một Embedded Server tải cấu hình và cũng ghi vào một dữ liệu tham số-pased-dir?Kiểm tra Solr thông qua Embedded Server
Trả lời
Bạn có thể bắt đầu bằng số SolrExampleTests mở rộng SolrExampleTestBase mở rộng AbstractSolrTestCase.
Đây cũng là SampleTest.
SolrExampleTests: http://svn.apache.org/repos/asf/lucene/solr/tags/release- 1.4.0/src/test/org/apache/solr/client/solrj/SolrExampleTests.java – High6
Điều này đề cập đến 1.4 phiên bản của solr. Nếu bạn cần phiên bản 3.5 của các lớp đó thì sẽ có một tạo tác giả trên nền maven. http://mvnrepository.com/artifact/org.apache.solr/solr-test-framework – unscene
Đây là một ví dụ cho một trường hợp thử nghiệm đơn giản. Solr là thư mục chứa các file cấu hình Solr của bạn:
import java.io.IOException; import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer; import org.apache.solr.util.AbstractSolrTestCase; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServer; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.params.SolrParams; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertEquals; public class SolrSearchConfigTest extends AbstractSolrTestCase { private SolrServer server; @Override public String getSchemaFile() { return "solr/conf/schema.xml"; } @Override public String getSolrConfigFile() { return "solr/conf/solrconfig.xml"; } @Before @Override public void setUp() throws Exception { super.setUp(); server = new EmbeddedSolrServer(h.getCoreContainer(), h.getCore().getName()); } @Test public void testThatNoResultsAreReturned() throws SolrServerException { SolrParams params = new SolrQuery("text that is not found"); QueryResponse response = server.query(params); assertEquals(0L, response.getResults().getNumFound()); } @Test public void testThatDocumentIsFound() throws SolrServerException, IOException { SolrInputDocument document = new SolrInputDocument(); document.addField("id", "1"); document.addField("name", "my name"); server.add(document); server.commit(); SolrParams params = new SolrQuery("name"); QueryResponse response = server.query(params); assertEquals(1L, response.getResults().getNumFound()); assertEquals("1", response.getResults().get(0).get("id")); } }
Xem bài đăng trên blog này để biết thêm: Solr Integration Tests
Tôi sẽ báo trước tất cả các câu trả lời với câu trả lời mới: đó là - nếu bạn đang sử dụng junit 4.7, bạn có thể sử dụng phương pháp này. Nếu bạn sử dụng một JUnit cao hơn, bây giờ, bạn không thể. – jayunit100
Trước tiên, bạn cần phải thiết lập Solr bạn Home Directory, trong đó có solr.xml và conf thư mục chứa solrconfig. xml, schema.xml, v.v.
Sau đó bạn có thể sử dụng mã đơn giản và cơ bản này cho Solrj.
File solrHome = new File("Your/Solr/Home/Dir/");
File configFile = new File(solrHome, "solr.xml");
CoreContainer coreContainer = new CoreContainer(solrHome.toString(), configFile);
SolrServer solrServer = new EmbeddedSolrServer(coreContainer, "Your-Core-Name-in-solr.xml");
SolrQuery query = new SolrQuery("Your Solr Query");
QueryResponse rsp = solrServer.query(query);
SolrDocumentList docs = rsp.getResults();
Iterator<SolrDocument> i = docs.iterator();
while (i.hasNext()) {
System.out.println(i.next().toString());
}
Tôi hy vọng điều này sẽ hữu ích.
- 1. Embedded GlassFish bỏ qua tài nguyên kiểm tra Maven
- 2. Kiểm tra xem SQL Server có được cài đặt trên máy thông qua C#
- 3. C++ Web Framework w/Embedded Server?
- 4. Solr DataImportHandler với SQL Server
- 5. C# kiểm tra Hộp thư đến Hotmail thông qua HTTP
- 6. Solr Spell Kiểm tra truy vấn dựa trên kết quả kiểm tra
- 7. Solr - trình kiểm tra chính tả mẫu không hoạt động
- 8. Lập trình vòng lặp thông qua một hộp kiểm DatagridView và kiểm tra
- 9. RSpec - Kiểm tra thông số mạnh
- 10. Kiểm tra xem thông tin đăng nhập SQL Server đã tồn tại chưa
- 11. Đi qua dữ liệu đến và từ một UIWebView Embedded
- 12. Kiểm soát Spotify thông qua Processing/Arduino
- 13. Bỏ qua AspectJ trong junit kiểm tra
- 14. kiểm tra CheckStyle không được bỏ qua
- 15. GoogleTest: Cách bỏ qua bài kiểm tra?
- 16. Kiểm tra ActiveSupport :: Thông báo với rspec
- 17. golang - Cách kiểm tra thông tin multipart.File
- 18. Cách kiểm tra loại thông số mẫu?
- 19. Đơn vị kiểm tra MVC với ASP.NET Dev Server
- 20. Embedded Jetty - IllegalStateException: No SessionManager
- 21. Jquery Iterate Thông qua tất cả các hộp kiểm tra và loại bỏ
- 22. Cách kiểm tra xem giá trị chuỗi truy vấn có xuất hiện thông qua javascript
- 23. Rails 3 hủy nhiều bản ghi thông qua các hộp kiểm tra
- 24. Kiểm tra các dịch vụ API web thông qua hồ sơ sql?
- 25. Mã nhỏ nhất có thể lọc danh sách kiểm tra thông qua javascript
- 26. Làm thế nào để kiểm tra địa phương gae golang urlfetch thông qua proxy?
- 27. Cách kiểm tra các trường riêng được sửa đổi thông qua các phương thức công cộng
- 28. Karma: Thông báo hệ thống khi kiểm tra vượt qua hoặc thất bại
- 29. kiểm tra has_many thông qua với xác nhận bằng cách sử dụng RSpc 2.9.0 + FactoryGirl 3.2
- 30. Địa chỉ mặc định của Solr Server (Solr 4.0) để sử dụng từ máy khách SolrJ
ĐƯỢC CẨN THẬN !!!! Chỉ có JUnit 4.7 hỗ trợ các phương pháp được nêu dưới đây, tôi tin. Có một số loại thiết lập() lỗi gọi động xảy ra trong các phiên bản mới hơn của JUnit với bài kiểm tra Cơ sở Solr. – jayunit100
Tôi đã trả lời một câu hỏi tương tự tại đây: http://stackoverflow.com/a/23102896/1410035 –