在solr中对文本字段进行排序

4 sorting solr solrcloud

我正在使用 solr 3.4 并希望在文本字段上对 solr 搜索结果进行排序。如何像 int 自然排序一样实现对文本字段的排序?

有什么方法可以在查询期间将文本字段转换为 int 吗?

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

知道我怎么能做到这一点吗?

Jay*_*dra 5

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

例如 abs(some_field) desc

否则,将该字段复制到需要重新索引的 int 类型的新字段中。

此外,排序不适用于多值和标记化的文本字段。

文档- 可以对文档的“分数”或任何 multiValued="false" indexed="true" 字段进行排序,前提是该字段是非标记化的(即:没有分析器)或使用仅产生单个 Term(即:使用 KeywordTokenizer)