在solr中的文本字段上排序

时间:2013-04-17 14:31:11

标签: sorting solr solrcloud

我正在使用solr 3.4并希望将solr搜索结果排序在文本字段中。如何使用int自然排序在文本字段上实现排序?

在查询期间有没有办法将文本字段转换为int?

我的排序字段是字符串类型,我希望它在排序时表现为int字段。我无法更改字段类型,因为索引大小太大而无法重新索引。

我知道如何实现这一目标?

2 个答案:

答案 0 :(得分:4)

不太确定,但您可以使用abs等函数检查Function Queries或任何可能将其转换为int值并将其用于排序的数学函数

e.g。 abs(some_field) desc

否则,将该字段复制到具有int类型的新字段,该字段需要reindex。

此外,排序在多值和标记化文本字段上不起作用。

Documentation - 可以在文档的“得分”上进行排序,或者在任何multiValued =“false”indexed =“true”字段上进行排序,前提是该字段是非标记化的(即:没有分析器)或使用仅生成分析的分析器单个术语(即:使用KeywordTokenizer)

答案 1 :(得分:1)

在查询期间无法执行。

您必须在新的整数字段上使用additional fieldcopying文本字段,然后重新索引数据库。 使用filter以确保该转换将正常进行。