0

我正在尝试在我的项目中实现 Linq To Lucene,但是在尝试搜索某些内容时,我总是得到一个Enumeration yielded no results结果,当我调试并尝试[IndexContext].[TableProperty]Watch窗口中打开我时,我收到以下消息:

Lucene Term 的谓词不能是空字符串。

我曾尝试在 Google 中搜索此内容,但显然它没有返回任何结果!

有没有人遇到过这个消息?我该如何解决?因为目前它没有返回任何数据

[更新]

显然问题是当Between我使用. 举个例子:MatchLikeLucine.Linq.Extensions

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

以下查询返回结果:db.Artists.Where(a => a.Name == "Camel");

但是这个没有:db.Artists.Where(a => a.Search("Camel"));

[更新]

经过进一步测试,我意识到Match扩展方法确实返回了结果,而其他方法 ( Search, Like) 没有。我仍在为这个问题而苦苦挣扎

4

1 回答 1

1

我也在我的项目中使用它,我相信这条消息会显示“Lucene 术语的谓词不能是空字符串。”,因为 Lucene 不接受空术语作为搜索条件。

这就是发生在我身上的事情:

(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 的谓词不能是空字符串”。错误。

希望能帮助到你

于 2009-10-18T04:43:51.540 回答