2009-05-02 6 views
0

私は自分のプロジェクトでLinq To Luceneを実装しようとしていますが、何かを検索しようとすると、いつもEnumeration yielded no resultsという結果が得られていて、[IndexContext].[TableProperty]をデバッグしてWatchウィンドウを開くと、Linq to Lucene: "Lucene Termの述語は空の文字列にすることはできません。"

Lucene Termの述語は、 を空の文字列にすることはできません。

Googleで検索してみましたが、明らかに結果はありませんでした。

誰もこのメッセージを以前に遭遇しましたか?それをどうやって修正することができますか?現在、それはLucine.Linq.Extensionsで発見され

[更新]

私は拡張メソッドのいずれかを使用していたときに明らかに問題がある(BetweenMatchLikeなど...)任意のデータを返さないだから。以下の例を見てみましょう:

var db = new MusicRepo_DB_IndexContext(@"C:\MusicRepoDB_index", 
             new MusicRepo_DBDataContext()); 

次のクエリでは、結果を返します:db.Artists.Where(a => a.Name == "Camel");

をしかし、この1はしていません:db.Artists.Where(a => a.Search("Camel"));

[更新]

さらにテスト時には、私はMatch拡張メソッドが実際に結果を返すことを認識しました。他のものと同じように(SearchLike)はしません。私はまだこの問題で苦労しています

答えて

1

私は自分のプロジェクトでも使っていますが、私の信念は、このメッセージが「Lucene Termの述語は空の文字列にはなれません」ということです。検索条件として空の用語。私に何が起こったのです

(Northwindデータベース) 私は

var mmCustomers = from c in dbi.Get<Customer>() 
         where c.ContactTitle == "Marketing Manager"      
         select c; 

を検索しようとすると、それが正常に動作しますが、私はしようとすると:

var mmCustomers = from c in dbi.Get<Customer>()      
         select c; 

それは示してい"Lucene Termの述語は空の文字列にすることはできません。"

希望すると助かります

関連する問題