波兰语中的 Solr 排序文本
Solr sorting text in Polish
我有 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' 排序)。
有人吗?
我无法直接在 SOLR 中找到解决方案,因此我在索引期间清除了不必要的字符。
$sortValue = preg_replace('/[^A-Za-z0-9- zżźćńółęąśŻŹĆĄŚĘŁÓŃ]/u', '', $sortValue);
我有 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' 排序)。
有人吗?
我无法直接在 SOLR 中找到解决方案,因此我在索引期间清除了不必要的字符。
$sortValue = preg_replace('/[^A-Za-z0-9- zżźćńółęąśŻŹĆĄŚĘŁÓŃ]/u', '', $sortValue);