gpt4 book ai didi

java - CriteriaBuilder 查询中的重音不敏感

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

嗯,我正在使用 CriteriaBuilder 和 PredicateList 来处理 JPA 并从数据库中提取信息,事实是它包含带重音的数据,我需要进行搜索,即使我搜索不带重音的单词,我也会找到带重音的单词。例如:该数据库包含以下数据:'técnico a' 的意思'技术b'。

在我输入“tec”的子句中,我需要两个选项都出现。我怎样才能让他跳过口音?我需要的结果是:

技术a,技术b

我有这个代码:

predicatesList.add((builder.like(builder.lower(root.<String>get("descripcion")),
'%' + (descripcion.toLowerCase().trim() + '%'))));

提前谢谢您。

最佳答案

重点是字符“é”和“e”是不同的。因此,如果通过其中之一进行搜索,则无法同时找到两者。这是我刚刚想到的一个想法。让您的表包含两个用于描述的字段。在“描述”中调用一个“description”,另一个“normilized_description”将原始值存储在“normilized_description”存储值中,您将在其中将所有重音字符替换为非重音字符。因此,在您的情况下,您的记录将如下所示:
记录一个:
描述:'técnico a'
normilized_description: '技术 a'

记录b:
描述:'tecnico b'
normilized_description: 'tecnico b'

然后,如果您需要按字段“normilized_description”进行搜索,并且需要按“description”进行特定值搜索

关于java - CriteriaBuilder 查询中的重音不敏感,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49751195/

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