2017-03-27 3 views
0

필드를 추출하기 위해 사전 처리 단계가있는 작업 흐름이 있습니다. 나중에이 작업을 Solr에 처리 할 다른 프로세스로 넘깁니다. 원본 파일은 레코드가있는 문서로 구성되며 표 형식의 데이터로 구성됩니다. 일부 열은 해당 필드 값에 대한 관련 documentID를 얻기 위해 Solr에서 색인화됩니다. 나는. 당신은Solr : 원래 파일 오프셋 또는 레코드 번호를 토큰으로 저장합니다.

q=indexedField:indexedValue1 
fl= documentId 

같은 쿼리와 같은 응답이 있습니다 indexedValue1 가정

... response: {documentID1, documentID3} 

문서 documentID1, documentID3에서 필드 indexedField에 존재한다.

각 레코드는 색인을 생성하려는 필드 중 하나에 값을 갖습니다. 전 처리 연결은이 값을 하나의 (긴) 텍스트 필드에, 각 값을 토큰으로하여 나중에 사용자가 검색 할 수있게합니다. ... 값 1의 값 2 ... 값 N ...

일부 필드 추출하고 필드에 재편성됩니다, 그래서 당신은에 의해 검색 할 경우 : Morphlines을 물려 때 필드를 색인과 같이 가치, 당신은 그것이 어떤 문서인지 알 수 있습니다. 그러나

, 어떻게 또한 원본 파일에 내가하여 검색 할 각 토큰, 오프셋 (또는 레코드 번호)와 함께, SOLR에 저장할 수

(여기까지 매우 간단)? 문제는이 정보를 추출하는 것이 아니라 다른 문제이기도하지만 해결할 수 있습니다.

기록의 위치 즉 위처럼 쿼리,하지만 각 문서 ID 당 얻을 것이다가, 원래의 레코드 번호 나 파일 오프셋 - 뭔가 같은 :

... response:{ {documentID1, [1234, 5678]}, { documentID3, [] } } 

은이 모든 수 있습니까? 이 경우 효율적으로 모델을 작성하는 데 올바른 Solr 데이터 구조는 무엇입니까?

답변

0

당신이 찾고있는 것이 Payloads 인 것으로 들립니다. 이 기능은 Solr에 있지만 실제 코드를 실제로 사용하려면 맞춤 코드가 필요합니다.

하지만 도전 과제는 검색 중에 일치하는 토큰과 관련된 페이로드를 반환하려는 것입니다. 검색이 문서를 반환하고 특정 문서에서 일치하는 항목을 추출하는 것이 별도의 과제인데 주로 대개 형광펜으로 해결되므로 검색이 더욱 복잡해집니다.

+0

나는 문제 자체를 생각할 때, 내가 생각한 것은 역 색인 학대가 될 것이라고 생각한다. 별도의 정보 수집을 위해 별도의 소장품을 소지했습니다. 그럼에도 불구하고 솔라 프레임 안에서 조사를 계속해야하는 방향으로 지적했기 때문에 대답을 받아들입니다. – xmar