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的结果?也许使用搜索参数过滤器?

谢谢你的帮助

net只搜索不同的列值

没有办法(据我所知)在Lucene内部有不同的。

然而,有一个更有效的方法。

Linq方法意味着你必须完全投射你的行/对象,如果在实际的东西中有更多的字段,这可能会很昂贵。

如果你在查询中添加一个Sort,这样Lucene就可以按id顺序返回文档,你可以只投影id,并且只投影文档的其余部分,如果id不同于前一个。

这是一个自定义方法,但这很正常