Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 在Solr 4中对方面值排序时忽略变音符号_Sorting_Solr_Solr4 - Fatal编程技术网

Sorting 在Solr 4中对方面值排序时忽略变音符号

Sorting 在Solr 4中对方面值排序时忽略变音符号,sorting,solr,solr4,Sorting,Solr,Solr4,Tl;dr:如何让Solr 4在对刻面值进行排序时忽略变音符号 在默认Solr示例中,我向“collection1”Solr核心添加了以下四个文档: <doc> <field name="id">1</field> <field name="cat">manuka</field> <field name="cat">mystery</field> </doc> <doc>

Tl;dr:如何让Solr 4在对刻面值进行排序时忽略变音符号

在默认Solr示例中,我向“collection1”Solr核心添加了以下四个文档:

<doc>
  <field name="id">1</field>
  <field name="cat">manuka</field>
  <field name="cat">mystery</field>
</doc>
<doc>
  <field name="id">2</field>
  <field name="cat">mānuka</field>
  <field name="cat">stuff</field>
</doc>
<doc>
  <field name="id">3</field>
  <field name="cat">management</field>
  <field name="cat">stuff</field>
</doc>
<doc>
  <field name="id">4</field>
  <field name="cat">abc</field>
  <field name="cat">stuff</field>
</doc>
注意,玛努卡是在神秘之后出现的。我希望毛利努卡排在麦卢卡之后,排在其他东西之前,也就是说,我希望这种类型忽略包括长音符在内的变音符号

如果这是一个非方面搜索,看起来我可以通过设置一个单独的副本字段并按该字段排序来实现我想要的(我不能为字段本身设置排序规则,因为存储的数据将是排序规则键的二进制表示)。然而,这种方法似乎不适用于方面查询,因为它们只能按索引或计数排序


我是不是忽略了什么?在我确实需要显示“cat”字段的值的环境中,是否有一些技巧可以让它工作?

问题是关于自定义方面的索引顺序

你的建议是使用。你可以这样做,你的方面的顺序将是正确的。问题在于,两者都没有凌驾于法律之上

这两个类不能重写
indexedToReadable
,因为从单词到术语的映射通常是不可逆的。但对于您可能的情况,您可以实现
ICUCollationField
的子类,该子类以完整的方式覆盖
indexedToReadable

你的出发点可能是


...

正如您将在本例中看到的,刻面值的名称非常不可读。

问题是关于自定义刻面的索引顺序

你的建议是使用。你可以这样做,你的方面的顺序将是正确的。问题在于,两者都没有凌驾于法律之上

这两个类不能重写
indexedToReadable
,因为从单词到术语的映射通常是不可逆的。但对于您可能的情况,您可以实现
ICUCollationField
的子类,该子类以完整的方式覆盖
indexedToReadable

你的出发点可能是


...
正如您将在本例中看到的,刻面值的名称非常不可读

<field name="cat" type="string" indexed="true" stored="true" multiValued="true"/>
<fieldType name="string" class="solr.StrField" sortMissingLast="true" />
....
"facet_fields":{
  "cat":[
    "abc",1,
    "management",1,
    "manuka",1,
    "mystery",1,
    "mānuka",1,
    "stuff",3]},
....
    <fieldType name="sort_fr_t" class="solr.ICUCollationField" locale="fr" strength="primary"/>
    ...
    <field name="sort_fr" type="sort_fr_t" indexed="true" stored="true" docValues="true" multiValued="true"/>