这一节非常非常简单,场景是这样的:我们对Lucene原生的排序结果不感兴趣,而是希望按我们的意志针对某个域排序。
记住三点:
1) 设计这么一个单独的域,用它来排序;
2) 保证此Field下每个文档中仅含一个词元(通常的方法是设置Field.Index.NOT_ANALYZED,当然,采用KeywordAnalyzer等仅会产生一个词元的分析器去分词也可以);
3) Field的值要能够转化成整型、浮点型或字符串(尽管索引阶段数字是被当成字符存储的,但要保证它在排序时能被转换回数字)。
就这些了,多说无益。