Lucene.Net을 사용하는 응용 프로그램에서 정수를 저장하는 숫자 필드가 있습니다. 값의 카디널리티는 다소 낮습니다 (일반적으로 20-30 개 미만의 다른 값).Lucene의 숫자 필드에면 처리를 수행하는 특별한 방법이 있습니까?
나는이 필드를 통해 파셋 검색을하고 싶다. (기여 패키지의 SimpleFacetedSearch
을 사용한다.) 즉 고유 값 당 히트 수를 원한다.
현재 추가 텍스트 필드에 값의 복사본을 저장하고 있으며이 텍스트 필드에 대해면 처리 된 검색을 실행합니다. 올바른 결과를 반환합니다.
그러나이 방법이 있습니까? NumericFields를 통한면 처리 된 검색을 수행하는 특별한 방법이 있습니까?
참고 : 카디널리티가 낮기 때문에 precision-step을 int.MaxValue로 설정하여 값당 단 하나의 용어 만 사용할 수 있습니다. 이 경우 숫자 필드 자체에서면 처리 된 검색을 간단히 수행하고 NumericUtils.PrefixCodedToInt()
을 사용하여 수동으로 값을 디코딩 할 수 있다고 가정합니다. 이것이 맞습니까, 아니면 합병증이 있습니까? 지금까지의 테스트에서 정상적으로 작동하는 것으로 나타났습니다.