2016-07-13 3 views
1

안녕하세요 : Lucene 5.1에서 Lucene 6으로 마이그레이션 중입니다. DocValuesType이 NONE으로 동결되고 정렬하려면 NUMERIC이 필요하므로 InPoint는 정렬을 지원하지 않는다는 것을 알았습니다. Lucene 5.1에서는 범위 기반 검색을 수행하고 결과를 정렬 할 수 있도록 필드의 필드 유형을 설정할 수있었습니다. LegacyIntField로 마이그레이션 할 수 있지만 대신 새 IntPoint로 마이그레이션하고 싶습니다. 범위 기반 쿼리와 정렬을 모두 지원하는 숫자 값을 인덱싱하는 방법을 알고 있습니까?Lucene에서 IntPont 또는 LongPoint 필드를 정렬하는 방법 6

감사합니다.

답변

4

귀하는

searcher.search(query, hitsPerPage, new Sort(new SortField("bid_sorter", SortField.Type.SCORE, true))) 
0

당신은 NumericDocValuesField 또는 그 서브 클래스의 값을 저장할 필요에 일종의 기반 SortedNumericDocValuesField

document.add(new SortedNumericDocValuesField("bid_sorter", bid)); 

추가로 사용하고 확인해야합니다. doc.add(new NumericDocValuesField(field, 10);

그런 다음이 필드에 의해 평가 검색 문서가 될 것입니다 :

Sort sort = new Sort(new SortedNumericSortField(field, SortField.Type.INT, true)); TopDocs topDocs = indexsearcher.search(query, returnedDocNum, sort);

관련 문제