所以我有一个包含文章的数据库,用户应该能够搜索他们输入的关键字,搜索应该找到包含该词的任何文章。
因此,例如,如果有人要搜索阿尔茨海默氏症这个词,我会希望它以任何方式返回带有单词spell的文章,而不管撇号如此;
阿尔茨海默
老年痴呆症
结果应全部退回。在这一刻,它会搜索单词拼写的确切方式,如果它有标点符号则不会带来结果。
所以我现在对查询的看法是:
private static final String QUERY_FIND_BY_SEARCH_TEXT = "SELECT o FROM EmailArticle o where UPPER(o.headline) LIKE :headline OR UPPER(o.implication) LIKE :implication OR UPPER(o.summary) LIKE :summary";
用户的输入称为'searchText',来自输入框。
public static List<EmailArticle> findAllEmailArticlesByHeadlineOrSummaryOrImplication(String searchText) {
Query query = entityManager().createQuery(QUERY_FIND_BY_SEARCH_TEXT, EmailArticle.class);
String searchTextUpperCase = "%" + searchText.toUpperCase() + "%";
query.setParameter("headline", searchTextUpperCase);
query.setParameter("implication", searchTextUpperCase);
query.setParameter("summary", searchTextUpperCase);
List<EmailArticle> emailArticles = query.getResultList();
return emailArticles;
}
所以我想把阿尔茨海默氏症的所有结果带回来,无论天气如何,它们都是撇号。我想我已经提供了足够的信息,但如果你需要更多信息,请说明。不确定该去哪里或怎么做,是否可以只更换/删除用户搜索中的所有标点符号或只是撇号?