持っているデータをもとに検索ページを作ろうとしています。これが私のコードです。
SortField sortField = new SortField(TEXT_FIELD_RANK, SortField.Type.INT, true);
Sort sort = new Sort(sortField);
Query q = queryParser.parse(useQuery);
TopDocs topDocs = searcher.search(q, totalLimit, sort);
ScoreDoc[] hits = topDocs.scoreDocs;
log.info("totalResults="+ topDocs.totalHits);
int index = getStartIndex(start, maxReturn);
int resultsLength = start * maxReturn;
if (resultsLength > totalLimit) {
resultsLength = totalLimit;
}
log.info("index:"+ index + "==resultsLength:"+ resultsLength);
for (int i = index; i < resultsLength; ++i) {
}
基本的に、ここに私の要件があります。完全一致がある場合は、完全一致を表示する必要があります。完全一致がない場合は、結果をフィールドで並べ替える必要があります。そのため、for ループ内で正確な一致を確認します。
しかし、何があっても結果をソートしているように見えるので、完全に一致しても最初のページには表示されません。
ありがとう。