SQL查询带来所有结果,而不管JSF的标点符号

时间:2014-03-06 10:00:58

标签: sql database jsf

所以我有一个包含文章的数据库,用户应该能够搜索他们输入的关键字,搜索应该找到包含该词的任何文章。

因此,例如,如果有人要搜索阿尔茨海默氏症这个词,我会希望它以任何方式返回带有单词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;
}

所以我想把阿尔茨海默氏症的所有结果带回来,无论天气如何,它们都是撇号。我想我已经提供了足够的信息,但如果你需要更多信息,请说明。不确定该去哪里或怎么做,是否可以只更换/删除用户搜索中的所有标点符号或只是撇号?

0 个答案:

没有答案
相关问题