网友BUFFON问了我一个问题 ,问题地址可以点此
链接
我们来看看这个问题
以及BUFFON想要达到的效果:
我觉得这个问题的提法有些问题,
1)好像不存在关于某个field的相关度的说法,只有整条记录的相关度,
2)你并没有对多字段排序的需求
看了你的问题,我觉得你想要的是:
点击某个字段,然后
先按点击字段排序再按匹配度排序
解决办法
创建一个sort实例,构造方法见上面的代码,传到seach方法。代码中的 orderby就是你点击的filed名,更准确的说是你建索引时的名字。
这个问题给我们的提示就是对于复杂的排序,应该使用Sort类的构造方法
这个构造方法可以解决多字段排序,可以指定
1)按哪个或哪些字段排
2)排序字段类型
3)升序或者降序
4)记录相关度
5)建索引时的索引顺序
其他的有关细节我就不再赘述了
我们来看看这个问题
怎样实现在按一个或多个FEILD的匹配度排序的同时又按一个FIELD的顺序排序
以及BUFFON想要达到的效果:
----------------------------------
| field1 | field2 |
-----------------------------------
| XXXXXXX1 | 333 |
-----------------------------------
| XXXXXXX2 | 333 |
-----------------------------------
| XXXXXXX3 | 222 |
-----------------------------------
| XXXXXXX4 | 333 |
-----------------------------------
| XXXXXXX5 | 555 |
-----------------------------------
然后我想再按field2进行分组和归类,使得到的结果变成这样
----------------------------------
| field1 | field2 |
-----------------------------------
| XXXXXXX1 | 333 |
-----------------------------------
| XXXXXXX2 | 333 |
-----------------------------------
| XXXXXXX4 | 333 |
-----------------------------------
| XXXXXXX3 | 222 |
-----------------------------------
| XXXXXXX5 | 555 |
-----------------------------------
| field1 | field2 |
-----------------------------------
| XXXXXXX1 | 333 |
-----------------------------------
| XXXXXXX2 | 333 |
-----------------------------------
| XXXXXXX3 | 222 |
-----------------------------------
| XXXXXXX4 | 333 |
-----------------------------------
| XXXXXXX5 | 555 |
-----------------------------------
然后我想再按field2进行分组和归类,使得到的结果变成这样
----------------------------------
| field1 | field2 |
-----------------------------------
| XXXXXXX1 | 333 |
-----------------------------------
| XXXXXXX2 | 333 |
-----------------------------------
| XXXXXXX4 | 333 |
-----------------------------------
| XXXXXXX3 | 222 |
-----------------------------------
| XXXXXXX5 | 555 |
-----------------------------------
我觉得这个问题的提法有些问题,
1)好像不存在关于某个field的相关度的说法,只有整条记录的相关度,
2)你并没有对多字段排序的需求
看了你的问题,我觉得你想要的是:
点击某个字段,然后
先按点击字段排序再按匹配度排序
解决办法
new
Sort(
new
SortField[]
{
new SortField("orderby"),
SortField.FIELD_SCORE
}
new SortField("orderby"),
SortField.FIELD_SCORE
}
创建一个sort实例,构造方法见上面的代码,传到seach方法。代码中的 orderby就是你点击的filed名,更准确的说是你建索引时的名字。
这个问题给我们的提示就是对于复杂的排序,应该使用Sort类的构造方法
这个构造方法可以解决多字段排序,可以指定
1)按哪个或哪些字段排
2)排序字段类型
3)升序或者降序
4)记录相关度
5)建索引时的索引顺序
其他的有关细节我就不再赘述了