显然,数据库中的更改不会始终反映索引中的内容。是否有人使用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)));
答案 0 :(得分:0)
我们确实遵循了我在更新中建议的方法。需要注意的一点是,我们只使用它来显示结果的小列表,而不是用于每种类型的搜索。对于较大文档的全文搜索,我们只使用Lucene结果,因为我们没有将FTS数据存储在我们的数据库中。