2016-07-13 4 views
1

こんにちは:私はLucene 5.1からLucene 6に移行しています。 DocValuesTypeがNONEに固定され、ソートにはNUMERICが必要なため、InPointはソートをサポートしていないことが分かりました。 Lucene 5.1では、新しいフィールドのフィールドタイプを設定して、レンジベースの検索を行い、結果をソートすることができました。私はLegacyIntFieldに移行することができますが、代わりに新しいIntPointに移行したいと思います。範囲ベースのクエリと並べ替えの両方をサポートする数値のインデックス方法を知っていますか?LuceneのIntPontまたはLongPointフィールドをソートする方法6

ありがとうございました!

答えて

4

あなたは

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

SortedNumericDocValuesField追加を使用すると、ソートあなたはNumericDocValuesFieldまたはそのサブクラスに値を格納する必要があり、その上に

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

基づき確認する必要があります。 doc.add(new NumericDocValuesField(field, 10);

その後、この分野でランク付けされた検索のドキュメントは次のようになります。

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

関連する問題