首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Solr 4中对facet值排序时忽略diacritics

在Solr 4中对facet值排序时忽略diacritics
EN

Stack Overflow用户
提问于 2016-02-26 01:06:52
回答 1查看 302关注 0票数 1

Tl;dr:,在排序方面值时,如何使Solr 4忽略指示符?

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

代码语言:javascript
复制
<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“字段定义为:

代码语言:javascript
复制
<field name="cat" type="string" indexed="true" stored="true" multiValued="true"/>

"string“类型定义为:

代码语言:javascript
复制
<fieldType name="string" class="solr.StrField" sortMissingLast="true" />

当我对"cat“字段执行按值(http://localhost:8983/solr/collection1/select?q=*%3A*&rows=0&wt=json&indent=true&facet=true&facet.field=cat&facet.sort=index)排序的方面查询时,我得到:

代码语言:javascript
复制
....
"facet_fields":{
  "cat":[
    "abc",1,
    "management",1,
    "manuka",1,
    "mystery",1,
    "mānuka",1,
    "stuff",3]},
....

请注意,mānuka在神秘之后。我想让我的ā努卡在曼纽卡之后,在东西之前,也就是,我想要那种忽视包括马克龙在内的符号学。

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

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

EN

回答 1

Stack Overflow用户

发布于 2016-02-29 17:03:33

问题是如何自定义一个方面的索引顺序。

您的建议是使用校对。你可以这样做,你的面的顺序将是正确的。问题是,CollationFieldICUCollationField都没有覆盖indexedToReadable法

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

您的起点可以是TestICUCollationField

代码语言:javascript
复制
    <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"/>

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35641539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档