2017-01-31 1 views
0

일부 배경 "부모가 일치하지 않는 부모 쿼리 수율 문서 필터링"얻을 세 가지 중첩 된 개체, 카탈로그 데이터 인 참여가 SOLR가 ChildDocTransformerFactory 중첩 된 문서를 조회,

  • 데이터를 : 제품, 제품, 그리고 스커스, 순서대로. 차별화 요소로 각 레코드에 docType 필드가 있습니다.
  • 데이터의 "id"필드는 데이터 유형 내에서 고유하지만 데이터 유형 간에는 고유하지 않습니다. 우리 프로그램에 "uuid"필드를 추가했습니다.이 필드는 P12345와 같이 docType의 첫 글자로 시작되는 ID 인 Solr 가져 오기 파일을 생성합니다. 이것은 uuid 필드를 고유하게 만들고, 우리는 그것을 schema.xml의 uniqueKey로 갖는다.
  • 상위 제품 및 모든 하위 문서를 검색하려고합니다. 따라서 우리는 ChildDocTransformerFactory ([child ...])를 사용하여 부모와 함께 자식을 검색합니다. 결과에서 SKU 내의 항목을 중첩 된 문서로 가져 오는 문제는 아직 해결되지 않았지만 어느 시점에서는이를 파악해야합니다. 그러나 지금은 평평하게 처리해야합니다.
  • 개념 증명을 구축 중입니다. 이. 이것은 모두 새로운 작업이므로 우리는 많이 바꿀 자유가 있습니다.
  • 은 SOLR 6.0.0이며, 그것이 우리의 데이터 (I 단순성에 대한 일부 필드를 삭제했습니다) 다음과 같습니다

중요한 경우에 우리는 JSON 형식으로 가져 :

{ 
    "id": 739063, 
    "docType": "Product", 
    "uuid": "P739063", 
    "_childDocuments_": [ 
    { 
     "id": 1537378, 
     "price": 25.45, 
     "color": "Blush", 
     "docType": "Item", 
     "productId": 739063, 
     "uuid": "I1537378", 
     "_childDocuments_": [ 
     { 
      "id": 12799578, 
      "size": "10", 
      "width": "W", 
      "docType": "Sku", 
      "itemId": 1537378, 
      "uuid": "S12799578" 
     } 
     ] 
    } 
} 

모든 제품과 그 안에 중첩 된 모든 하위 항목을 가져 오는 쿼리는 q = docType : Product & fl = title, id, docType, [child parentFilter = docType : Product]입니다. 해당 쿼리를 실행하면 모두 정상이며 처음 10 개 행을 반환합니다. 그러나 & 행 = 500을 추가하여 더 많은 행을 가져 오면 오류가 발생합니다. 상위 쿼리는 상위 필터 docID = XXX과 일치하지 않는 문서를 생성합니다.

처음 오류를 발견했을 때 우리는 id 필드가 문서 유형간에 고유하지 않음을 발견 했으므로 위에 언급 한 것처럼 uuid 필드를 추가했습니다. 우리는 또한 schema.xml 파일에 을 추가하고, 코어를 지우고, 다시 만들고, Solr을 재시작하여 효과가 있음을 확인했습니다. 우리는 두 번 확인했고 uuid 필드가 유일하다는 것을 확신합니다.

해당 오류에 대한 모든 검색 결과에서 OP에는 다양한 문서 유형을 구분할 수있는 필드가 없지만 Google에서 알 수있는 것처럼 질의와 parentFilter가 모두 을 찾고 있기 때문에 docType : Product 어떻게 부모가 아닌 다른 것을 반환 할 수 있는지 알 수 없습니다. 또한 childFilter = docType : Item 및 childFilter = docType : Sku를 추가하려고 시도했지만 도움이되지 않았습니다. 또한 제품에만 제목이 있기 때문에 query : parentFilter에 title : *을 사용해 보았습니다.

다른 시도가 있습니까?

설명이 있으십니까?

schema.xml에 지정되어 있어도 uuid를 고유 식별자로 사용하지 않고이 문제가 발생할 수 있습니까?

감사합니다.

답변

0

solrconfig 때문에 schema.xml을 사용하지 않은 것으로 나타났습니다.관리되는 스키마에 대해 xml이 구성되었습니다. 죄송합니다.

설명서의 대부분은 사용자가 스키마가없는 것으로 가정하고 세부 사항에 익숙하지 않기 때문에 놓쳤습니다.

관련 문제