Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用 solr 3.4 并希望在文本字段中对 solr 搜索结果进行排序。如何像 int 自然排序一样实现对文本字段的排序?
有什么方法可以在查询期间将文本字段转换为 int 吗?
我的排序字段是字符串类型,我希望它在排序时表现为 int 字段。我无法更改字段类型,因为索引大小太大且无法重新索引。
知道如何实现这一目标吗?
不太确定,但您可以使用 abs 或任何可能将其转换为 int 值并将其用于排序的数学函数 来检查函数查询
例如abs(some_field) desc
abs(some_field) desc
否则,将该字段复制到需要重新索引的 int 类型的新字段中。
此外,排序不适用于多值和标记化的文本字段。
文档- 可以对文档的“分数”或任何 multiValued="false" indexed="true" 字段进行排序,前提是该字段未标记化(即:没有分析器)或使用仅生成单个 Term(即:使用 KeywordTokenizer)
在查询期间不可能这样做。
您必须有额外的字段并将文本字段复制到新的整数字段上,然后重新索引您的数据库。使用过滤器以确保转换将起作用。