休眠搜索土耳其字符

Hibernate Search Turkish Character

我正在尝试搜索充满土耳其语字符的字段。 例如:Müdürlük。 但是当我尝试查询该字段时无法获得结果。我是休眠搜索的新手。我该怎么办?

可能还有其他问题(没有代码我无法判断),但您可能想要的一件事是使用特定于语言的分析器,这样 "mudurluk" 将匹配 "Müdürlük" 例如,或者 "istanbul" 将匹配“İstanbul”(大写点 "i")。

要通过使用注释的 Hibernate Search 做到这一点,请填写 @Field 注释的 analyzer 属性:

@Field(analyzer = @Analyzer(impl = org.apache.lucene.analysis.tr.TurkishAnalyzer.class))
String myProperty;

如果您使用编程 API 映射您的实体,过程应该非常相似。

有关 Hibernate Search 中分析器的更多详细信息,请参阅官方文档:https://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#_analyzer

编辑:不要忘记在更改分析器后重新索引数据。