gpt4 book ai didi

java - JPA Select 查询不返回一个字母单词的结果

转载 作者:行者123 更新时间:2023-11-30 10:14:40 25 4
gpt4 key购买 nike

我有一个查询,当给定一个以单字母单词开头,后跟空格字符然后是另一个单词(例如:“T Distribution”)的单词时,不返回结果。当单独给出“Distribution”返回结果时,包括“T Distribution”的结果。这与所有以单字母单词开头、后跟空格字符然后是另一个单词的搜索词的行为相同。

当搜索词是这种模式时,就会出现问题:“[一个字母][空格][字母/单词]”。示例:“O 形环”。

在这种情况下,LIKE 运算符无法正常工作会出现什么问题?

这是我的查询:

@Cacheable(value = "filteredConcept")
@Query("SELECT NEW sina.backend.data.model.ConceptSummaryVer04(s.id, s.arabicGloss, s.englishGloss, s.example, s.dataSourceId,
s.synsetFrequnecy, s.arabicWordsCache, s.englishWordsCache, s.superId, s.categoryId, s.dataSourceCacheAr, s.dataSourceCacheEn,
s.superTypeCasheAr, s.superTypeCasheEn, s.area, s.era, s.rank, s.undiacritizedArabicWordsCache, s.normalizedEnglishWordsCache,
s.isTranslation, s.isGloss, s.arabicSynonymsCount, s.englishSynonymsCount) FROM Concept s
where s.undiacritizedArabicWordsCache LIKE %:searchTerm% AND data_source_id != 200 AND data_source_id != 31")
List<ConceptSummaryVer04> findByArabicWordsCacheAndNotConcept(@Param("searchTerm") String searchTerm, Sort sort);

数据库本身的查询结果: link to screenshot

无论字母大小写,都会返回数据库中的结果: link to screenshot

最佳答案

我解决了这个问题。这是由于 mysql 数据库上的全文索引的默认配置,默认设置为 2 (ft_min_word_len = 2)。

我更改了它并重建了索引。然后,查询返回一个字母的单词。

12.9.6 Fine-Tuning MySQL Full-Text Search

关于java - JPA Select 查询不返回一个字母单词的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50793690/

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