4

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

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

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

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

4

2 回答 2

5

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

例如abs(some_field) desc

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

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

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

于 2013-04-18T05:14:07.103 回答
1

在查询期间不可能这样做。

您必须有额外的字段并将文本字段复制到新的整数字段上,然后重新索引您的数据库。使用过滤器以确保转换将起作用。

于 2018-10-31T13:12:11.550 回答