有什么方法可以使搜索查询的重音不敏感吗?
列和表的排序规则是utf8_polish_ci,我不想更改它们。
例句:toruń
select * from pages where title like '%torun%'
它找不到“toruń”。我怎样才能做到这一点?
您可以在运行时在sql查询中更改排序规则,
...where title like '%torun%' collate utf8_general_ci
但是请注意,在运行时即时更改排序规则会放弃mysql使用索引的可能性,因此大型表的性能可能很糟糕。
或者,您可以将列复制到另一列,例如searchable_title
,但是更改其排序规则。这种类型的工作实际上很常见,您可以在其中复制数据,但以某种略有不同的形式进行数据处理,并针对某些特定的工作负载/用途进行了优化。您可以使用触发器作为使重复的列保持同步的好方法。如果建立索引,此方法有可能表现良好。
注意-
确保您的数据库确实包含这些字符,而不包含html实体。同样,连接的字符集也很重要。上述假定它的设置为utf8,例如,通过集名状set names utf8
如果不是,则需要一个引荐词作为文字值
...where title like _utf8'%torun%' collate utf8_general_ci
当然,单引号中的值实际上必须是utf8编码的,即使其余的sql查询不是。
问题内容: 我有一个MySQL数据库,其单词包含西班牙语(áéíóú)的重音。我想知道是否有任何方法可以进行变音符号不敏感搜索。例如,如果我搜索“ lapiz”(不带重音),我想从数据库中获取包含“lápiz”一词的结果。我当前执行查询的方式如下: 这是一家在线商店,所以我不知道人们会搜索什么……“ lapiz”只是一个例子。 替代文字http://www.freeimagehosting.net
问题内容: 我有一个带有utf8一般ci排序规则的MySQL表。在表中,我可以看到两个条目: 阿巴德 阿巴德 我正在使用如下查询: 查询结果给出两个词: 阿巴德 阿巴德 有没有办法表明我只希望MySQL找到带重音的单词?我希望查询仅返回 阿巴德 我也尝试过以下查询: 它没有给我任何结果。感谢您的帮助。 问题答案: 如果您对该字段的搜索始终对重音敏感,则将该字段的排序规则声明为utf8_bin(这将
我正在使用Hibernate Search/Lucene Intégration开发一个J2E应用程序。我索引文档(和其他实体),并希望对其进行不区分重音的搜索(内容和类的字段)。 这样做好吗?是否没有param或conf属性让FrenchAnalyzer忽略重音? 谢谢
我不熟悉弹性搜索。我有以下疑问 } 这里我想要Elastic应该给出类似大小写不敏感的结果 但是我不会像这样得到所有的结果。所以任何人都可以帮我。 我有4份文件 现在在上搜索时,应该只返回前3个文档,因为它们以开头,忽略这里的大小写,而不是第4个,它也有,但不在开头。
问题内容: 我是Elasticsearch新手。 可以说我们有一个这样的类: 我们有2个文档,其名称分别为 “Ayşe” 和 “ Ayse” 。 现在, 我希望能够存储带有重音符号的名称,但是当我搜索时希望能够将不重音符号查询的结果作为重音敏感结果 。 例如:当我搜索 “ Ayse” 或 “Ayşe”时 ,它应同时返回存储的 “Ayşe”和“ Ayse” (带有重音符号)。 现在,当我搜索“ Ay
问题内容: 所需结果: 在MySQL中具有重音敏感的主键。 我有一个独特的单词表,所以我将单词本身用作主键(顺便说一句,如果有人可以给我一些建议,我不知道它是否是一个好的设计/实践)。 我需要使该字段具有重音(为什么不区分大小写),因为它必须区分法语动词“ demander”的两个不同的变体,例如和。我在数据库中存储重音词没有任何问题。我只是无法插入没有重音时相同的两个重音字符字符串。 错误 :