从头开始在lucene中排序

Sort in lucene by the start

我尝试对 Lucene 搜索进行排序,但找不到更好的结果排序方法。 我首先想要以我的表达式开头的结果,次要顺序是按字母顺序排列的。

在Lucene中有什么方法可以通过启动排序?

我尝试使用自定义收集器,但我不确定它是否正确。

谢谢。

在 Lucene 中排序通常是一种不好的做法,如果您正在搜索的字段上排序(并且使用您正在搜索的精确表达式)- Lucene 应该使用它为您排序结果评分算法。

现在,如果我们把它放在一边,当您打开 IndexSearcher 并准备使用 search() 时,您可以使用此方法:search(Query query, int n, Sort sort) 并实施 Sort class 来定义您的排序策略。

More documentation here

此致,

谢谢,我点了一个排序: 新排序(新排序字段(fieldToSort,SortField.Type.STRING,假));

然后用 Collections.sort Lucene 给出的结果。

Collections.sort(results, new Comparator<View>(){
            public int compare(View v1, View v2){
                if(v1.startsWith(text)) {
                    if(v2.startsWith(text)){
     return  v1.compareTo(v2);
                    }  else {
                        return -1;
                    }
                }else if(v2.startsWith(text)){
                    return 1;
                }
                return  v2.compareTo(v1);
            }
        });

非常感谢。