我正在使用solr 3.4并希望将solr搜索结果排序在文本字段中。如何使用int自然排序在文本字段上实现排序?
在查询期间有没有办法将文本字段转换为int?
我的排序字段是字符串类型,我希望它在排序时表现为int字段。我无法更改字段类型,因为索引大小太大而无法重新索引。
我知道如何实现这一目标?
答案 0 :(得分:4)
不太确定,但您可以使用abs等函数检查Function Queries或任何可能将其转换为int值并将其用于排序的数学函数
e.g。 abs(some_field) desc
否则,将该字段复制到具有int类型的新字段,该字段需要reindex。
此外,排序在多值和标记化文本字段上不起作用。
Documentation - 可以在文档的“得分”上进行排序,或者在任何multiValued =“false”indexed =“true”字段上进行排序,前提是该字段是非标记化的(即:没有分析器)或使用仅生成分析的分析器单个术语(即:使用KeywordTokenizer)
答案 1 :(得分:1)
在查询期间无法执行。
您必须在新的整数字段上使用additional field和copying文本字段,然后重新索引数据库。 使用filter以确保该转换将正常进行。