繁体   English   中英

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

[英]How to Sort Solr field in case insensitive manner

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

搜索结果显示为oracle排序方式,即先取任何特殊字符、数字、大写(AZ)再小写(az)。

结果应为特殊字符、数字、大写 (A)、小写 (a) – 到大写 (Z) 小写 (z)

Current Expected

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

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

实现此目的的一种方法是,当您提取数据(例如code_for_sorting_s )时,将文本的小写版本存储在单独的 Solr 字符串字段中,然后按该字段排序。

另一种方法是在 Solr 中定义一个copy-field ,该字段会自动将当前字段(例如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 中定义,以创建一个使用我提到的小写过滤器的字符串字段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM