4

持っているデータをもとに検索​​ページを作ろうとしています。これが私のコードです。

            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 ループ内で正確な一致を確認します。

しかし、何があっても結果をソートしているように見えるので、完全に一致しても最初のページには表示されません。

ありがとう。

4

1 に答える 1