2009-10-19 3 views
3

Lucene.Net에서 숫자 필드를 효율적으로 색인화하고 검색하는 방법을 찾고 있습니다. 지금은 정수 값만 필요합니다.숫자 필드를 색인화하고 Lucene.Net에서 범위로 검색하는 방법은 무엇입니까?

값 범위 (x와 y, x보다 큼 ...)로 검색하고 싶습니다. 지금은 숫자를 인덱싱하고 두 값 사이에 각 값에 대한 절을 수동으로 만들지 만 1000 및 1000 사이의 값을 검색 할 때 많은 절을 빠르게 생성하고 기본 제한 (1024)을 지정합니다. 5000이다. 그게 더 좋은 방법이라고 확신합니다 ...

답변

6

RangeQuery로 해결했습니다.

FieldName:[startValue TO endValue] 

의 범위 쿼리 문자열을 운영하고 있다는 사실을 양지해야합니다, 그래서 당신의 숫자는 인덱스와 쿼리 모두 정규화해야합니다 또한 다음과 같은 구문을 사용하여 쿼리 파서 수행 할 수 있습니다. 내 경우에는 .ToString ("00000")으로 5 자리수로 정규화했습니다. 음수와 소수 자리에는 특수 처리가 필요하지만 내 경우에는 문제가되지 않습니다.

관련 문제