【发布时间】:2009-09-21 09:53:03
【问题描述】:
我必须破解内容管理系统以支持全文搜索包含特殊字符的语言。这些以 html 实体的形式存储在数据库中。开箱即用,CMS 不支持它。该错误是很久以前报告的,但显然它没有优先级。我坚持使用这个 CMS,客户正在等待我的解决方案,所以我必须破解它。妈的……
好的... CMS 通过将特殊字符转换为 html 实体来存储其内容(这实际上是由捆绑的编辑器完成的)。所以德语单词“möchten”在数据库中得到“möchten”。 CMS 创建一个查询字符串,如
SELECT * FROM `SiteTree` WHERE MATCH( Content ) AGAINST (<SEARCH_STRING> IN BOOLEAN MODE);
表是 MyISAM 类型,字段有一个 FULLTEXT 索引。
如果您使用“möchten”作为搜索字符串,MySQL 将匹配每个页面,因为 & 是一个运算符,如果它出现在搜索字符串中,它将做一些疯狂的事情。搜索将不起作用。
下一个想法是将特殊字符替换为 * 作为占位符。但这也将匹配几个单词,只要你有任何以“m”开头的单词和另一个以“chten”结尾的单词。我不知道为什么,但是只用星号替换与号(因此搜索“m*ouml;chten”)也会导致类似的结果。
here 描述了同样的问题。
好的,伙计们,我需要你们的帮助!有什么想法吗?
编辑:无法将内容转换为 UTF-8。
谢谢!
崩溃
【问题讨论】:
标签: mysql full-text-search special-characters