문서를 solrj로 색인하려고했습니다. iam은 Solr4.5를 사용하고 색인을 생성 할 거대한 파일이 있습니다. 성능 병목 현상을 피하기 위해 각 파일을 인덱싱하는 방법은 무엇입니까?Solr에 엄청난 수의 파일 추가하기
답변
우선은 서버 측 로그와 커밋에 대한 메시지를 찾을 수 있습니다. 각 파일을 구문 분석 한 후 하드 커밋을 수행하는 것이 가능합니다. 그건 비싸. 부드러운 커밋이나 commitWithin 매개 변수를 살펴보면 파일이 약간 나중에 표시되도록 할 수 있습니다.
두 번째로 Solr에게 파일을 가져오고 Tika 추출을 실행하라는 요청을 보내는 것 같습니다. 그래서, 매번 Solr 내부의 Tika가 다시 시작됩니다. 다른 대답이 제시하는 것처럼 배치 할 수는 없습니다.
그러나 클라이언트에서 로컬로 Tika를 실행하고 한 번 초기화하고 계속 유지할 수 있습니다. 그러면 SolrInputDocument를 구성하는 방법에 더 많은 융통성이 생기며 배치 할 수 있습니다.
어떻게 티크 추출물을 외부에서 실행합니까? Solrj가 내부적으로 처리한다고 생각했습니다. – user3161879
코드를 올바르게 이해하면 추출기 처리기로이 요청을 보냅니다. 즉, Solr * 서버 *가 Tika를 실행 중임을 의미합니다. 대신 Java 프로세스 내에서 Tika를 인스턴스화하고 직접 실행할 수 있습니다. 솔라가 구현 한 필드 매핑 기능 중 일부는 느슨하게 될 것이지만 아직 사용하지는 않을 것으로 생각됩니다. –
예, 귀하의 제안을 시도하고 확인하십시오. 하지만 한 번에 하나씩 여러 문서를 색인하려고 할 때, 성공적으로 100,000 개의 레코드에 대한 색인을 생성하고 파일의 나머지 부분은 http : // servername/solr/Not ok 상태 : 500, message : 인터넷 서버 오류. 그 이유는 무엇일까요? – user3161879
solr을 사용하면 각 문서의 업데이트 속도가 느립니다.
모든 문서를 추가 한 다음 업데이트로 커밋하는 것이 훨씬 좋습니다. 는 SOLR 위키에서 촬영 : 확인
Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
docs.add(doc1);
docs.add(doc2);
UpdateRequest req = new UpdateRequest();
req.setAction(UpdateRequest.ACTION.COMMIT, false, false);
req.add(docs);
UpdateResponse rsp = req.process(server);
Iam은 각 파일을 한 줄씩 다른 파일을 파싱하는 것으로부터 인덱싱되도록 받고 있습니다. 그래서 나는 그 어떤 문서 모음도 갖고 있지 않습니다. 한 번에 하나의 파일이 있습니다. 그래서 루프 할 때마다이 컬렉션에 파일을 추가해야합니까? 해당 컬렉션에 대한이 업데이트 요청을 호출합니까? – user3161879
@ user3161879 예, 컬렉션에 추가하고 완료하면 컬렉션으로 업데이트 요청을하십시오. –
코드를 변경하고 컬렉션 문서를 server solr에 전달했습니다. 그러나 내부의 모든 문서에는 ID가 명시 적으로 설정되어 있습니다. 하지만 문서가 필수 uniqueKey 필드가 누락되어 있으므로 solr이 예외를 던지고 있습니다. id. 어떤 여분의 일을해야하는지. – user3161879
- 1. 외부 HD의 루트에있는 엄청난 수의 파일 삭제
- 2. 갑자기 엄청난 수의 인스턴스
- 3. 엄청난 수의 XML 편집
- 4. 엄청난 수의 파일을 청크로 다운로드
- 5. 서버에 엄청난 수의 레코드 추가
- 6. solr에 캡션 추가하기 XML exampledocs
- 7. 엄청난 수의 조합에 대한 몽고 (mongodb) '레이아웃'
- 8. SSIS를 사용하여 엄청난 수의 레코드 선택
- 9. pytables를 사용하여 엄청난 수의 배열을 구축하십시오.
- 10. Magento - 엄청난 수의 db 쿼리 x 페이지
- 11. 엄청난 수의 레코드 업데이트 - 성능 최적화
- 12. 엄청난 수의 레코드가있는 테이블에서 그룹을 최적화하는 방법
- 13. 엄청난 수의 점에 대한 가장 가까운 쌍
- 14. 엄청난 수의 태그를 하나의 핫 인코딩
- 15. solr에 여러 파일 보내기
- 16. 가변 수의 변수 추가하기
- 17. BASH : 다른 거대한 목록에 포함되어있는 경우 엄청난 수의 목록 필터링
- 18. 서브 쿼리를 기반으로 엄청난 수의 행을 삽입하십시오 ... 문제가 있습니다
- 19. 엄청난 수의 요소가있는 html javascript select 옵션 컨트롤 (예 : 10K)
- 20. 엄청난 수의 레코드에 대한 최상의 성능 검색 쿼리/방법은 무엇입니까
- 21. 엄청난 수의 레코드를 사용하면서 Hibernate를 빠르게 업데이트하는 방법
- 22. ftp 디렉토리 목록 제한 시간. 엄청난 수의 하위 디렉토리
- 23. 엄청난 수의 키로 dict()를 빨리 정렬하는 방법은 무엇입니까?
- 24. 많은 수의 작은 파일 다운로드
- 25. Dojo treemodel- 많은 수의 항목 추가하기
- 26. 자바 스크립트를 사용하여 불확실한 수의 필드 추가하기
- 27. 각 그룹에 다른 수의 요소 추가하기
- 28. solr에 그룹화
- 29. 엄청난 메모리 소모없이 문자열로 텍스트 파일 읽기
- 30. Solr에 zip 파일을 처리하십시오.
얼마나 걸 립니 까? 이러한 파일은 한 번만 색인화하면됩니다. –
@Bartlomiej Lewandowski : 1 시간 동안 35,000 개의 레코드를 인덱싱합니다. 그래서 총 70 만 건의 기록은 내가 쉬어야 만합니다. . 그래, 나는이 파일들을 한번 색인화해야만한다. 그러나 iam은 각 파일에 대한 solr 업데이트 요청을 호출한다. – user3161879