我正在尝试在仅包含电影的数据库中的表上实现搜索功能。
public class Movie {
@Id
@Column(unique = true, nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String originalTitle;
private String year;
private String trailer;
....etc
搜索主要基于名称,但根据可能出现的差异,我不确定哪个是最好的选择。
例如。有些用户可以搜索“Wall E”,有些用户会搜索“Wall-E”,但我的数据库包含原始名称“WALL·E”。
我有两个选择:构建一个正则表达式并在我搜索数据库时使用它,以及使用模糊匹配进行弹性搜索。
在这种情况下最好使用哪个,关于性能和误报我还应该考虑什么?
我使用 Spring Boot 作为后端,使用 MySQL 作为数据库。