将Lucene结果与实体框架结果相结合?

时间:2012-04-01 14:42:14

标签: entity-framework lucene lucene.net

显然,数据库中的更改不会始终反映索引中的内容。是否有人使用EF与Lucene并将Lucene搜索的结果与结果组合在EF中进行相同的搜索?我知道你只想撤回不属于Lucene结果的EF结果。

更新

我想解决这个问题的最佳方法是首先搜索Lucene索引并得到一个结果列表,然后你会为EF做这样的搜索:

伪代码:

var result = (from ef in EntityFrameworkList
                      where !(from l in LuceneList
                              select l.documentId)
                             .Contains(ef.Id)
                      select ef);
LuceneList.AddRange(result); 

对于喜欢方法链的人

var result = (EntityFrameworkList.Where(ef => !(LuceneList.Select(l => l.documentId))
                                                   .Contains(ef.Id)));

1 个答案:

答案 0 :(得分:0)

我们确实遵循了我在更新中建议的方法。需要注意的一点是,我们只使用它来显示结果的小列表,而不是用于每种类型的搜索。对于较大文档的全文搜索,我们只使用Lucene结果,因为我们没有将FTS数据存储在我们的数据库中。