검색용으로 설계된 매우 유연하고 확장 가능하며 내결함성이 있는 문서 수집 시스템입니다.
빌드는 다음이 친절하게 기부한 인프라에서 실행됩니다.
종종 검색 프로젝트는 SolrCell 또는 post.jar과 같은 Solr의 처리 기능에 내장된 "테스트용"을 통해 검색 엔진에 수동으로 몇 개의 문서를 공급하는 것으로 시작됩니다. 이러한 기능은 사용자가 최소한의 고통스러운 설정으로 Solr로 수행할 수 있는 작업에 대한 느낌을 갖도록 돕기 위해 문서화되고 포함되었습니다.
이것은 좋으며 이것이 첫 번째 탐색을 위한 방식이어야 합니다. 불행하게도 그것은 잠재적인 함정이기도 합니다.
너무 자주, 더 잘 알지 못하고 이러한 인터페이스가 참조 매뉴얼에 문서화되어 있다는 사실로 인해 오해를 받는 사용자(그리고 문서화된 모든 것이 이를 수행하는 "올바른 방법"이어야 한다고 가정)는 검색 시스템을 계속 개발합니다. 동일한 인터페이스의 사용을 자동화함으로써. 해당 사용자에게 공정하게 말하면 Solr Ref 가이드의 일부 이전 버전은 인터페이스의 "테스트용" 특성을 식별하지 못했습니다. 때로는 커뮤니티가 이와 관련된 함정을 인식하는 데 시간이 걸렸기 때문입니다.
불행하게도 검색을 위한 대규모 문서 수집은 쉽지 않으며 이러한 인덱싱 인터페이스는 프로덕션 용도로 사용되지 않습니다. 일반적인 결과는 작은 테스트 코퍼스에서는 "정상"으로 작동하다가 더 큰 프로덕션 코퍼스에서는 불안정해진다는 것입니다. 이러한 인터페이스에 제공하기 위해 작성된 코드는 여러 유형의 문서 또는 다양한 문서 형식에 대해 반복되어야 하는 경우가 많으며, 쉽게 중복되고 공통 기능을 잘라내어 붙여넣을 수 있습니다. 또한 대규모 자료에서 이러한 솔루션이 작동하도록 하기 위해 상당한 엔지니어링을 투자한 후, 다음으로 발견한 것은 인덱싱이 도중에 실패하면 복구할 방법이 없다는 것입니다. 최악의 경우 실패는 말뭉치의 크기와 관련이 있으며 말뭉치가 커짐에 따라 실패가 점점 더 일반화되고, 완료 및 인덱싱 실행 가능성이 작아지고 결국 문제가 허용되는 경우 시스템을 전혀 인덱싱하거나 업그레이드할 수 없게 됩니다. 훼손하다. 그 결과는 끔찍하고 고통스러우며 잠재적으로 비용이 많이 드는 일련의 성장통입니다.
JesterJ는 강력한 모든 기능을 갖춘 인덱싱 인프라로 쉽게 시작할 수 있도록 노력하므로 바퀴를 다시 만들 필요가 없습니다. JesterJ는 매우 많은 수의 문서로 작업할 때까지 포기할 필요가 없는 시스템입니다(그리고 그 시점에서 이미 대규모 사용자 정의 솔루션에 대한 비용을 지불할 수 있을 만큼 좋은 이익을 얻고 있기를 바랍니다!). 재사용 가능한 다양한 처리 구성요소가 제공되며 자신만의 맞춤형 프로세서를 작성하는 것은 몇 가지 간단한 지침에 따라 4가지 메소드 인터페이스를 구현하는 것만큼 간단합니다.
문서를 Solr 또는 다른 검색 엔진에 색인화하는 시스템의 첫 번째 버전은 상당히 선형적이고 간단하지만 시간이 지남에 따라 기능과 향상으로 인해 복잡성이 추가되는 경우가 많습니다. 다른 경우에는 기존 시스템에 검색이 추가되기 때문에 시스템이 처음부터 복잡할 수도 있습니다. JesterJ는 복잡한 인덱싱 시나리오를 처리하도록 설계되었습니다. 다음과 같은 가상의 인덱싱 워크플로를 고려해 보세요.
JesterJ는 단일 중앙 집중식 처리 계획으로 이러한 시나리오를 처리하며 시스템의 플러그가 뽑혀도 수신된 주문에 대한 두 번째 메시지를 받지 않도록 보장합니다. JesterJ의 기본 모드는 안전하거나 멱등성으로 표시되지 않은 단계에 대해 최대 한 번 전달을 보장하는 것입니다. 안전한 단계는 외부 영향을 미치지 않으며 멱등성 단계는 최종 처리 종료 지점까지 도중에 반복될 수 있습니다.
자세한 내용은 웹사이트 및 설명서를 참조하세요.
위키의 문서를 참조하세요
현재 릴리스 : 1.0-Beta3. 이것은 사용하기에 가장 좋은 버전이며 대부분 작동해야 합니다. (알려진 문제: #189)
다음 릴리스: 2주 이내에 심각한 문제가 발견되지 않으면 1.0-Beta4가 곧 게시됩니다. 1.0이 릴리스됩니다.
참고: 현재 코드와 향후 1.0 릴리스는 단일 시스템에서 서비스할 수 있는 모든 설계 및 로드를 대상으로 합니다. JesterJ는 프로세서가 많은 시스템을 활용하도록 명시적으로 설계되었습니다. 병목 현상을 완화하기 위해 가장 느린 단계를 복제하여 계획을 설계할 수 있습니다. 각 중복은 해당 단계에서 작업하는 추가 스레드를 의미합니다. 1.1에서는 스레드의 자동 크기 조정이 계획되어 있으며 여러 시스템에 걸친 크기 조정은 2.x 릴리스의 주요 우선 순위입니다. 언제나 그렇듯이, 이러한 기능을 더 빨리 원하시면 토론을 시작하고 가능하다면 PR을 제공해주세요!
현재는 JDK 11만 정기적으로 테스트되었습니다. JDK 11의 모든 배포판이 작동해야 합니다. Java 17 및 향후 LTS 버전에 대한 지원은 향후 릴리스에서 계획되어 있습니다.
Discord에서 기능에 대해 토론하고 질문 등을 물어보세요: https://discord.gg/RmdTYvpXr9
이번 릴리스에는 다음과 같은 기능이 있습니다.
~/.jj/cassandra
릴리스 1.0은 단일 노드 시스템에 사용할 수 있도록 고안되었으므로 중소 규모 프로젝트(수천만 또는 수억 개 이하의 문서)에 사용하기에 적합합니다.
향후 릴리스에 포함될 내용에 대한 최선의 추측은 이슈 페이지의 마일스톤 필터를 통해 언제든지 제공됩니다.