solr自定义排序 30
请教如何设置solr自定义排序selectparams={sort=score+desc&start=0&q=(name:建筑+OR+products:建筑+OR+cor...
请教如何设置solr自定义排序
select params={sort=score+desc&start=0&q=(name:建筑+OR+products:建筑+OR+corporate:建筑+OR+linkman:建筑+OR+address:建筑)&hl.simple.pre=<strong>&hl.simple.post=</strong>&hl.fl=name,products,corporate,linkman,address&wt=javabin&hl=true&rows=20&version=2} hits=23 status=0 QTime=16 这个是我的查询语句 根据score(这个是我数据库中的一个字段)排序 但是查询出来的排序结果和我在数据库中查询出来的排序结果完全不一样 展开
select params={sort=score+desc&start=0&q=(name:建筑+OR+products:建筑+OR+corporate:建筑+OR+linkman:建筑+OR+address:建筑)&hl.simple.pre=<strong>&hl.simple.post=</strong>&hl.fl=name,products,corporate,linkman,address&wt=javabin&hl=true&rows=20&version=2} hits=23 status=0 QTime=16 这个是我的查询语句 根据score(这个是我数据库中的一个字段)排序 但是查询出来的排序结果和我在数据库中查询出来的排序结果完全不一样 展开
3个回答
展开全部
缺省solr就是按照score desc进行排序的,至于为何你的查询结果和数据库不一样,那是因为solr和数据库的索引方式不同引起的,不知道你的schema怎么定义的,solr中主要根据doc中term出现的频率也叫TF(term frequency)来判断文档的价值,即如果一个单词在一个文档中出现的频率高则由于那些在很多不同文档中出现的单词的优先级。
追问
这个score不是solr中的score而是我数据库中定义的一个字段,先抛开这个问题不说,我现在想做solr的自定义排序,我数据库有一个updated字段,我将updated用solr索引然后查询的时候要根据updated排序(就是查询最近更新的数据)但是我发现查询出来的排序结果并不是按照最新更新(updated)来排序的不知道怎么回事
展开全部
查询的时候加上你要排序的字段即可;回答是简单了,希望别吐槽
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-03-28 · 知道合伙人数码行家
关注
展开全部
public class Util {
public static void main(String[] args) {
//键盘接受用户输入的数
java.util.Scanner sc = new java.util.Scanner(System.in);
//放入数组,好排序,这里定义double类型就是如果用户输入的小数也可以
double[] arr = new double[16];
//循环用户输入的16个数
for(int i = 1; i <= 16; i++){
System.out.println("请输入第" + i +"个数");
arr[i-1] = sc.nextDouble();
}
//进行排序
java.util.Arrays.sort(arr); //这里进行排序
//输出排序后的16个数,顺序是从小到大
System.out.println(java.util.Arrays.toString(arr));
}
}
public static void main(String[] args) {
//键盘接受用户输入的数
java.util.Scanner sc = new java.util.Scanner(System.in);
//放入数组,好排序,这里定义double类型就是如果用户输入的小数也可以
double[] arr = new double[16];
//循环用户输入的16个数
for(int i = 1; i <= 16; i++){
System.out.println("请输入第" + i +"个数");
arr[i-1] = sc.nextDouble();
}
//进行排序
java.util.Arrays.sort(arr); //这里进行排序
//输出排序后的16个数,顺序是从小到大
System.out.println(java.util.Arrays.toString(arr));
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询