2016-08-09 4 views
0

값 내 해시 테이블은 다음과 같습니다 내가 원하는 것은Lucene.net 검색 내가 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를 호출하지 않고이 작업을 수행 할 수있는 방법이 있습니까? 어쩌면 searcher 인수 필터를 사용하고 있을까요?

이 방법은 별개의 내부 루씬 필요없이 (내가 아는) 없습니다 당신의 도움이

답변

0

주셔서 감사합니다.

그러나 더 효율적인 방법이 있습니다.

Linq 방법은 실제 필드에 필드가 더 많은 경우 비용이 많이 드는 행/개체를 완전히 투영해야한다는 것을 의미합니다.

Lucene이 ID 순서대로 문서를 반환하도록 쿼리를 정렬하면 ID가 이전과 다르면 광고는 나머지 문서 만 투영합니다.

맞춤식 방법이지만 꽤 정상입니다.