0

我有 solr 5.2.1 和用于排序的字段定义:

<fieldType name="polishSortVarchar" class="solr.ICUCollationField" locale="pl_PL" strength="secondary" />

在重新索引排序后几乎可以按我的意愿工作:

{
  "responseHeader": {
    "status": 0,
    "QTime": 2,
    "params": {
      "fl": "name_varchar",
      "sort": "sort_name_varchar asc",
      "indent": "true",
      "q": "*:*",
      "_": "1454575147254",
      "wt": "json",
      "rows": "10"
    }
  },
  "response": {
    "numFound": 5250,
    "start": 0,
    "docs": [
      {
        "name_varchar": "\"Europą\" na Antarktydę"
      },
      {
        "name_varchar": "1:0 dla Korniszonka"
      },
      {
        "name_varchar": "1001 faktów o roślinach"
      }
    ]
  }
}

正如您在第一个位置看到的那样,第一个字符上带有“”的短语,我想要过滤特殊字符并仅按字母排序(因此该短语将在第一个位置按“E”排序)。

有人吗?

4

1 回答 1

0

我无法直接在 SOLR 中找到解决方案,因此我在索引期间清除了不必要的字符。

$sortValue = preg_replace('/[^A-Za-z0-9- zżźćńółęąśŻŹĆĄŚĘŁÓŃ]/u', '', $sortValue);
于 2016-02-22T10:14:31.037 回答