2016-11-16 7 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を有効にしてみました=真。 が例外をスローします: "System.InvalidCastException:型 'SenseNet.SContentRepository.Storage.Search.InternalSearchEngine'のオブジェクトをキャストできません 'SenseNet.Search.LuceneSearchEngine"を入力します。 – dinhienhy

+0

* Export.exe *ツールの設定からコピーされたアプリ設定ファイルに* unity * configsがあることを確認してください。たとえば、ISearchEngineImpl(LuceneSearchEngineクラスを指す)の型エイリアスが必要です。私の推測では、これは設定されておらず、リポジトリの起動時にデフォルトの空の実装だけがロードされるということです。 –

+0

Unity configは、すでにアプリケーション設定ファイルで設定されています。しかし、それはまだ間違いです。 – dinhienhy

関連する問題