【问题标题】:How to Sort Solr field in case insensitive manner如何以不区分大小写的方式对 Solr 字段进行排序
【发布时间】:2020-05-19 13:26:31
【问题描述】:

我想以不区分大小写的方式对 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】:

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

    另一种方法是在 Solr 中定义一个 copy-field,它会自动将当前字段(例如 code_s)中的值复制到使用 Lower Case Filter 的新字段中。使用 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 中定义的,用于创建一个使用我提到的小写过滤器的字符串字段。

    【讨论】:

      猜你喜欢
      • 2018-08-30
      • 1970-01-01
      • 1970-01-01
      • 2013-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-11
      • 1970-01-01
      相关资源
      最近更新 更多