gpt4 book ai didi

java - Apache lucene : Sorting numbers and german umlauts

转载 作者:太空宇宙 更新时间:2023-11-04 10:01:18 25 4
gpt4 key购买 nike

Apache lucene 中是否有一个选项可以正确排序数字和德语变音符号,这意味着,例如“Ü”应解释为“Ue”,表示排序顺序为

U, Ü, Z 

而不是:

U, Z, Ü

类似于 lucene 默认值。

对数字进行排序

1, 2, 3, 100, 101, 102 

与 lucene 默认值不同:

1, 100, 101, 102, 2, 3

如何以这种方式解决条目?

谢谢!

最佳答案

是的,这是可能的。首先关于德语,在 Lucene 中处理语言的最佳方法是使用 ICU library 。对于 Lucene,我们有相应的 lucene-analyzers-icu 依赖项。

您可以使用 ICUCollat​​ionDocValuesField 对值进行排序。

final Collator instance = Collator.getInstance(ULocale.GERMAN);
final ICUCollationDocValuesField contents = new ICUCollationDocValuesField("contents", instance);

稍后使用此字段创建文档,您稍后将能够在此字段上排序并获得预期结果(例如 U、Ü、Z)

可以找到完整的工作示例 there

关于数字排序 - 您只需将它们排序而不是字符串(看起来您正在做),但实际上将它们排序为数字 SortField.Type.INT 应该可以帮助您解决此问题

关于java - Apache lucene : Sorting numbers and german umlauts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53438426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com