2012-10-01 2 views
1

Our Umbraco community 사이트에서도 다음 질문을했지만 지금까지 행운이 없었습니다.Lucene SearchResult.Fields 컬렉션에 일부 속성이 누락되었습니다.

우리 클라이언트의 Umbraco 사이트에 나타나는 미디어 이미지 파일에 데이터베이스 레코드를 수동으로 추가해야하는 작업이 있습니다. 이미지의 umbracoNode에 레코드를 추가

  • :

    내 SQL은 다음과 같이 구성됩니다.

  • 상기 실행 후 cmsContentXml
  • 화상의 umbracoFile, umbracoWidth, umbracoHeight, umbracoBytes위한 cmsPropertyData에 레코드를 추가 umbracoExtension

에 레코드를 추가 cmsContent

  • 에 레코드를 추가하고, Umbraco에 로그인 미디어 영역에서 이미지를 볼 수 있으며 모든 것이 잘 보입니다.

    이미지를 표시하려고 할 때 @ Model.MediaById() (Razor 파일에서)를 호출하는 것이 문제입니다. 기본적으로 img 'src'속성이 설정되어 있지 않으므로 이미지가 표시되지 않습니다.

    나는 Umbraco 코드를 밟아서 문제를 발견했습니다. 기본적으로 코드가 Lucene을 사용하여 미디어를 검색하면 (ExaminedBackendMedia.GetUmbracoMedia()) 이미지 파일을 찾지 만 SearchResult에 대해 누락 된 필드가 많이 있습니다. 예를 들어 필드 콜렉션에 cmsPropertyData에 대한 "umbraco *"속성 중 아무 것도 표시되지 않습니다. 수동으로 추가 된 다른 이미지의 코드를 단계별로 실행하면 모든 "umbraco *"속성을 포함하여 필드 콜렉션에 추가로 5 가지 정도의 속성을 볼 수 있습니다.

    여기 데이터가 누락 된 것을 볼 수 있습니다. 기본적으로 SearchResult 객체에는 일부 필드가 누락되어 있습니다. 누군가 내가 놓친 것일 수있는 것을 제안 할 수 있습니까? Lucene이 SQL 스크립트를 통해 추가 한 "umbraco *"속성을 선택하지 않는 이유는 무엇입니까?

  • +0

    모든 노드를 다시 게시 한 다음 코드를 단계별 실행하면 수동으로 추가 한 내용에 누락 된 필드가 있습니까? –

    +0

    예 : cmsPropertyData에 추가 한 모든 필드 (예 : "umbracoWidth")가 SearchResult.Fields에 없습니다. 이것은 Lucene이이 분야를 선택하지 않기 때문에 내가 한 걸음 놓쳤다 고 나에게 말한다. –

    +0

    오, 잠깐만 요, 당신이 "모든 노드를 다시 게시하시오."라고 언급 한 것을 보았습니다. 그 과정은 정확히 무엇입니까? –

    답변

    1

    노드를 다시 게시하면 만든 데이터베이스 항목에서 노드를 가져 와서 umbraco가 실제로 데이터를 처리 할 때 사용하는 XML 캐시에 넣을 수 있습니다.

    관련 문제