如何以不区分大小写的方式对Solr字段进行排序?

问题描述 投票:0回答:1

我想在Solr中以不区分大小写的方式对字符串字段进行排序。

搜索结果显示为oracle排序方式,即它首先接受任何特殊字符,数字,大写(A-Z),然后是小写(a-z)。

搜索结果应该是特殊字符、数字、大写(A)、小写(a)-到大写(Z)小写(z)

Current Expected

110000  110000
ATest   ATest
Btest   aTest
Ctest   BTest
Ztest   bTest
aTest   CTest
bTest   cTest
cTest   ZTest

请帮助配置字符串字段以预期的方式排序。

sorting solr solrnet
1个回答
0
投票

实现这一目标的一种方法是,当你摄取数据时,将文本的小写版本存储在一个单独的Solr字符串字段中(如 code_for_sorting_s),然后通过该字段进行排序。

另一种方法是定义一个 "小写 "字段。copy-field 在Solr中自动复制当前字段中的值(如 code_s)的值复制到一个新的字段中,该字段使用 小写过滤器. 使用Solr中内置的类型,你的 copy-field 的定义大致可以是这样的。

curl -X POST -H 'Content-type:application/json' --data-binary '{
  "add-copy-field":{
    "source":"code_s",
    "dest":[ "code_s_lower" ]}
}' http://your-solr-core-url/schema

在这种情况下 code_s 字段将被复制到一个新的字段(code_s_lower). 该 *_s_lower 后缀在Solr中被定义为创建一个字符串字段,使用我提到的小写过滤器。

© www.soinside.com 2019 - 2024. All rights reserved.