0

ドキュメントによると、Zend Lucene は辞書順でソートすることになっています。そうではないことがわかりました。'avg:[050 TO 300]' というクエリがある場合、その範囲内のすべての値が返されますが、値ではなくドキュメント ID に従って並べ替えられます。

find() 関数が追加のパラメーターを受け入れることができるため、特定の列 (例: $hits = $index->find($query, 'avg', SORT_NUMERIC, SORT_ASC);) で並べ替えることができることがわかりました。ただし、$query を動的に作成しており、すべての検索を「avg」でソートしたくありません。

範囲検索を行うときに、Lucene に結果を自動的に辞書順に並べ替えるにはどうすればよいですか? それが不可能な場合、検索機能にソート フィールドを動的に追加するにはどうすればよいでしょうか。

4

1 に答える 1

1

$hits結果を得た後、自分で並べ替えてみません$index->find(...)か?これは回避策のように見え、非常に大きな結果セットには時間がかかりますが、ほとんどの場合、これが最も簡単な方法だと思います。

于 2011-02-28T09:26:38.080 に答える