我正在使用Lucene.net搜索,我的哈希表看起来像:
ID | Customer | Update
1 | name1 | hello
1 | name1 | hello again
2 | name2 | how r u
3 | name3 | hi
3 | name3 | it is not working
我想要的是,当我搜索"你好"我通过ID得到结果列表:
ID | Customer | Update
1 | name1 | "hello"
我不需要更新列在结果中(因此我不关心ID 1的更新将在结果中)我只是想要它可搜索。我需要的唯一结果是ID和客户名称。我知道我可以使用MoreLINQ中的result.DistinctBy(res => res.Id)
来执行此操作,但我希望IndexSearcher
仅搜索dictinct Id值。有没有办法在不调用LINQ结果的情况下实现这一目标?也许使用搜索器参数过滤器?
感谢您的帮助
答案 0 :(得分:0)
我不知道(我知道)Lucene在内部是不同的。
然而,有一种更有效的方法。
Linq方法意味着你必须完全投射你的行/对象,如果真实的东西中有更多的字段,这可能是昂贵的。
如果您添加对查询进行排序,以便Lucene以id顺序返回文档,您可以只投影ID,如果id与之前的ID不同,则广告仅投影其余文档。
这是一种自定义方法,但这很正常。