我在轮胎的Elasticsearch中存储了一些数据。假设我有这样的数据:customer_name /数量。

现在,当我按数量排序时,一切正常。但是,按名称排序时,结果出乎意料:

这些是按名称desc排序的结果:

Lukas Marcus
Visser
Visser
Meik Kalte
Meik Kalte
Kalte Meik
Meik Kalte
Meik Kalte
Cust Imp Mc
Cust Imp Mc
Cust Imp Mc
John Doe
John Doe
Born Joan
Born Joan
Born Joan
Card Image
Card Image
Card Image
Aelps_Iso
Aelps_Iso

升序排序:
Visser
Visser
Cust Imp Mc
Card Image
Card Image
Cust Imp Mc
Cust Imp Mc
Aelps_Iso
Aelps_Iso
Born Joan
Born Joan
Born Joan
Card Image
John Doe
John Doe
Meik Kalte
Meik Kalte
Kalte Meik
Meik Kalte
Meik Kalte
Lukas Marcus

请注意,在两种情况下,“Visser都位于最上方。

查询参数:
@filters=[{:term=>{"user_id"=>605}}],
@sort=[{"customer_name"=>{:order=>"asc"}}

有什么提示吗?

最佳答案

我不知道为什么每个人都建议将字段设置为not_analyzed以按名称排序。默认情况下,当您最可能希望not_analyzed字段按字母顺序排序且忽略大小写时,not_analyzed字段将按字典顺序排序。

您真正想要的是带有关键字标记器和小写过滤器的分析器。

http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/sorting-collations.html

10-01 17:10