2014-09-04 2 views
1

나는 umbraco에서 사이트 검색을 위해 ezsearch를 설치하고 다음과 같이 렌더링했습니다.Umbraco (ezsearch 플러그인)를 사용하여 사이트 검색이 작동하지 않습니다.

@Umbraco.RenderMacro("ezSearch", new {rootContentNodeId="-1", rootMediaNodeId="-1", indexType="CONTENT", searchFields= "bodyText", previewFields="null", previewLength="null", pageSize="null", hideFromSearchField="null", searchFormLocation="null"}) 

검색 중이 아니며 항상 지금 결과를 표시합니다. searchfields 및 prewiewfields를 잘못 사용하고 있습니다. 이것에 대한 아이디어가있는 사람은 나를 도와주세요. 어떤 값을 searchField와 미리보기 필드를 통과시켜야합니다. 감사합니다.

답변

0

documentation of EzSearch을 살펴본 후 Razor 내부에서 직접 매크로를 사용하는 대신 RTE 내부의 매크로를 사용해 보았습니까? 문서 (PDF)에는 EzSearch 내부에서 수행 할 수있는 구성 정보가 있습니다. 여기에는 구성이라는 섹션이 있습니다.

왜 모든 매개 변수를 null로 지정하면 완료 될 수 있다고 말합니까? 난 당신이 문서를 살펴보고 첫 번째 단지

PreviewLength와 그것을 시도 제안한다 :

  • 유형
    • INT
  • 가능한 값
    • 하는 양의 정수
  • 이 연결된 전에210
  • 설명

    • 미리보기 텍스트의 최대 길이를 설정합니다. 연결 한 미리보기 텍스트는 마지막 완전한 단어에서 자르고 줄임표로 끝나는 이됩니다. PreviewLength의 기본값은 매개 변수없이 Umbraco.RenderMacro ("ezSearch") @ 250

입니다. 그리고 거기에서 하나씩 매개 변수를 추가하고 실제로 아무것도 표시하지 않을 때를보십시오.

Visual Studio에서 작업 중이거나 Umbraco 백엔드에서 작업하고 있습니까? 비주얼 스튜디오를 사용하는 경우 응용 프로그램을 디버깅하여 예외가 없는지 확인하는 것이 좋습니다. 그것은 umbraco에 의해 붙잡을 것이고, 삼켰다. Visual Studio를 사용하지 않는 경우 Umbraco의 로깅을보고 어떤 종류의 오류가 기록되는지 확인하십시오.

1

나는 Umbraco 7.2.4를 실행 중이며 ezsearch는 이전 버전의 모든 버전에서 정상적으로 작동하지만 갑자기이 버전에서 문제가 발생했습니다. 나는 모든 것을 시도하고 마침내 아래에 표시된 쿼리 작성 코드 중 일부를 주석 처리하여 작동하도록 만들었습니다. 그런 다음 작동하기 시작했습니다.

분명히 이것은 문제가 있습니다 ... 일부 줄의 주석 처리를 제거하여 정확히 어디에 있는지 찾아 볼 수는 있지만 지금은 게시 할 생각입니다.

이것은 ezsearch 매크로 부분보기 fyi에 있습니다.

@* 
var contentPathFilter = model.RootContentNodeId > 0 
      ? string.Format("__IndexType:{0} +searchPath:{1} -template:0", UmbracoExamine.IndexTypes.Content, model.RootContentNodeId) 
      : string.Format("__IndexType:{0} -template:0", UmbracoExamine.IndexTypes.Content); 
    var mediaPathFilter = model.RootMediaNodeId > 0 
     ? string.Format("__IndexType:{0} +searchPath:{1}", UmbracoExamine.IndexTypes.Media, model.RootMediaNodeId) 
     : string.Format("__IndexType:{0}", UmbracoExamine.IndexTypes.Media); 

    switch (model.IndexType) 
    { 
     case UmbracoExamine.IndexTypes.Content: 
      query.AppendFormat("+({0}) ", contentPathFilter); 
      break; 
     case UmbracoExamine.IndexTypes.Media: 
      query.AppendFormat("+({0}) ", mediaPathFilter); 
      break; 
     default: 
      query.AppendFormat("+(({0}) ({1})) ", contentPathFilter, mediaPathFilter); 
      break; 
    } 
    *@ 

.....

@* // Rank content based on positon of search terms in fields 
    for (var i = 0; i < model.SearchFields.Count; i++) 
    { 
     foreach (var term in model.SearchTerms) 
     { 
      query.AppendFormat("{0}:{1}*^{2} ", model.SearchFields[i], term, model.SearchFields.Count - i); 
     } 
    }*@ 
1

나는 똑같은 문제를 가지고 있었다.

로그 주위 굴착 후 I은 항목 "콘텐츠"allready 색인에 추가 할 beeing 때문에 (의 App_Code 단위) ezsearch의 부트 스트랩 코드를 주석으로 ..

를 오류 때 인덱싱을 일으키는 것을 알았다 이 줄을 EzSearchBootstrapper.cs에서 내 인덱스가 다시 채우기 시작했습니다.

var combinedFields = new StringBuilder(); 
     foreach (var keyValuePair in e.Fields) 
     { 
      combinedFields.AppendLine(keyValuePair.Value); 
     } 
     e.Fields.Add("contents", combinedFields.ToString()); 
+0

부트 스트 래퍼가 내 app_code에 없지만 여전히 검색이 깨졌습니다. –