net只搜索不同的列值
本文关键字:搜索 net | 更新日期: 2023-09-27 18:01:21
我正在使用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
我想要的是,当我搜索"hello"时我得到的结果列表不同于ID:
ID | Customer | Update
1 | name1 | "hello"
我不需要更新列在结果中(因此我不关心ID 1的哪个更新将在结果中),我只希望它是可搜索的。我唯一需要的结果是客户的ID和名字。我知道我可以通过使用MoreLINQ中的result.DistinctBy(res => res.Id)
来做到这一点,但我希望IndexSearcher
只搜索dicent Id值。是否有任何方法我可以实现这一点,而不调用LINQ的结果?也许使用搜索参数过滤器?
谢谢你的帮助
没有办法(据我所知)在Lucene内部有不同的。
然而,有一个更有效的方法。
Linq方法意味着你必须完全投射你的行/对象,如果在实际的东西中有更多的字段,这可能会很昂贵。
如果你在查询中添加一个Sort,这样Lucene就可以按id顺序返回文档,你可以只投影id,并且只投影文档的其余部分,如果id不同于前一个。
这是一个自定义方法,但这很正常