2016-11-16 2 views
1

콘솔 응용 프로그램에서 콘텐츠 쿼리를 사용하려고하지만 "개체 참조가 개체 인스턴스로 설정되지 않았습니다"라는 예외가 발생합니다. 문제를 해결할 수 있도록 도와주세요. 당신이 콘텐츠 쿼리를 실행하려면 해당 구성 요소가 쿼리에 대한 책임이 있기 때문에콘솔 응용 프로그램에서 콘텐츠 쿼리를 사용하는 감지/그물

var startSettings = new RepositoryStartSettings 
      { 
       Console = Console.Out, 
       StartLuceneManager = false, 
       IsWebContext = false,      
       PluginsPath = AppDomain.CurrentDomain.BaseDirectory, 
      }; 

      using (Repository.Start(startSettings)) 
      { 
       try 
       { 
        string path = "/Root/Sites/Default_Site/workspaces/Document/HACCP/Document_Library/SanXuat/ChonLocChuanBiDiaDiemSXRau"; 
        string fieldName1 = "Name"; 

        var content = Content.Load(path); 

        int count = ContentQuery.Query(".AUTOFILTERS:OFF .COUNTONLY Infolder:" + path).Count; 
       } 
       catch (Exception ex) 
       { 
        Console.WriteLine(ex.Message); 
       } 
      } 

답변

3

, 당신은, 당신은 저장소를 시작할 때 에게 LuceneManager를 활성화해야합니다.

new RepositoryStartSettings 
{ 
    Console = Console.Out, 
    StartLuceneManager = true, // <-- this is necessary 
    IsWebContext = false,      
    PluginsPath = AppDomain.CurrentDomain.BaseDirectory, 
} 

모든 구성 값 (예 : 색인 디렉토리 경로, 외부 검색 엔진 사용 설정)이 올바른지 확인하십시오. 내보내기 또는 가져 오기 도구의 구성 파일에서 복사 할 수 있습니다.

몇 가지 더주의 사항 : 항상 따옴표에서 묶으 경로 표현이 경로에 공백이있는 경우 때문에, 그것은 찾기 어렵다 쿼리 오류가 발생하시기 바랍니다 콘텐츠 쿼리

  • (다른 결과 집합을 반환하기 때문에).

    InTree : 예를 들어 '/ 루트/내 폴더'

또는 사용할 수있는 내장 확인합니다 매개 변수 기능 같은 :

// note the @0 parameter, which is a 0-based index 
ContentQuery.Query("+TypeIs:Article +InTree:@0", null, containerPath); 
+0

내가 StartLuceneManager 수 있도록 노력 = true. 하지만 예외가 throw됩니다. "System.InvalidCastException : 'SenseNet.SContentRepository.Storage.Search.InternalSearchEngine'형식의 개체를 'SenseNet.Search.LuceneSearchEngine'형식으로 캐스팅 할 수 없습니다. – dinhienhy

+0

* Export.exe * 도구의 구성에서 복사 한 응용 프로그램 구성 파일에 * unity * configs가 있는지 확인하십시오. 예를 들어, LuceneSearchEngine 클래스를 가리키는 ISearchEngineImpl에 대한 유형 별칭이 있어야합니다. 내 생각 엔이 구성되어 있지 않으며 repo 시작될 때 기본 빈 구현 만로드됩니다. –

+0

Unity config가 이미 app config 파일에 구성되었습니다. 그러나 여전히 오류입니다. – dinhienhy