首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置Solr对值执行不区分大小写的排序。

配置Solr对值执行不区分大小写的排序。
EN

Stack Overflow用户
提问于 2018-03-21 13:04:42
回答 2查看 1.1K关注 0票数 0

我有一个名为"customer“的字段名包含以下值,

  1. 布鲁克斯体育
  2. 上午纪录
  3. 伊莱曼
  4. 阿尔塔维斯塔
  5. 阿迪达斯
  6. 3 3gdata
  7. 苹果
  8. 宝马
  9. 711
  10. bic公司 solr schema.xml中的客户字段

我需要对以上客户价值进行不区分大小写的排序。这样我就能得到如下数据,

  1. 伊莱曼
  2. 3 3gdata
  3. 711
  4. 阿迪达斯
  5. 阿尔塔维斯塔
  6. 上午纪录
  7. 苹果
  8. bic公司
  9. 宝马
  10. 布鲁克斯体育

为此,我在copyField中创建了一个名为"customer_sort“的新scheme.xml字段。

代码语言:javascript
复制
        <field docValues="true" indexed="true" multiValued="false" name="customer_sort" stored="false" type="LowerTextField"/>

fieldType in scheme.xml

代码语言:javascript
复制
        <fieldType name="LowerTextField" class="solr.TextField" sortMissingLast="true" positionIncrementGap="1000">
        <analyzer type="index">
            <tokenizer class="solr.KeywordTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>

        </analyzer>
        <analyzer type="query">
            <tokenizer class="solr.KeywordTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
    </fieldType>

scheme.xml中的拷贝字段

代码语言:javascript
复制
<copyField source="customer" dest="customer_sort"/>

当前的排序结果是

  1. 伊莱曼
  2. 3 3gdata
  3. 711
  4. 阿尔塔维斯塔
  5. 上午纪录
  6. 阿迪达斯
  7. 苹果
  8. 宝马
  9. 布鲁克斯体育
  10. bic公司

基于ascii值进行排序。即( a,b,b,.)。

当我尝试alphaOnlySort时,也会发生同样的情况。

有人能告诉我我错过了什么吗?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2018-03-22 03:35:58

@MatsLindh请查找查询屏幕看起来像的图片

票数 0
EN

Stack Overflow用户

发布于 2018-03-27 08:36:28

您能在type="TextField".中使用schema.xml吗?我想知道这件事。

代码语言:javascript
复制
<fieldType name="LowerTextField" class="solr.TextField" sortMissingLast="true" positionIncrementGap="1000">
<analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    <filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.LowerCaseFilterFactory"/>
</analyzer>

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

https://stackoverflow.com/questions/49407100

复制
相关文章

相似问题

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