Mysql德语口音全文搜索时不敏感搜索

2024-01-03

让我们看一个酒店表示例:

CREATE TABLE `hotels` (
  `HotelNo` varchar(4) character set latin1 NOT NULL default '0000',
  `Hotel` varchar(80) character set latin1 NOT NULL default '',
  `City` varchar(100) character set latin1 default NULL,
  `CityFR` varchar(100) character set latin1 default NULL,
  `Region` varchar(50) character set latin1 default NULL,
  `RegionFR` varchar(100) character set latin1 default NULL,
  `Country` varchar(50) character set latin1 default NULL,
  `CountryFR` varchar(50) character set latin1 default NULL,
  `HotelText` text character set latin1,
  `HotelTextFR` text character set latin1,
  `tagsforsearch` text character set latin1,
  `tagsforsearchFR` text character set latin1,
  PRIMARY KEY  (`HotelNo`),
  FULLTEXT KEY `fulltextHotelSearch` (`HotelNo`,`Hotel`,`City`,`CityFR`,`Region`,`RegionFR`,`Country`,`CountryFR`,`HotelText`,`HotelTextFR`,`tagsforsearch`,`tagsforsearchFR`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;

例如,在此表中,我们只有一家地区名称 =“Graubünden”的酒店(请注意变音符号 ü 字符)

现在我想实现相同的短语搜索匹配: “格劳宾登”和 “格劳宾登州”

使用内置的 MySql 这很简单 常规搜索中的排序规则如下:

SELECT *  
FROM `hotels` 
WHERE `Region` LIKE CONVERT(_utf8 '%graubunden%' USING latin1) 
COLLATE latin1_german1_ci

这适用于“graubunden”和“graubünden”以及 结果我收到了正确的结果,但问题是 当我们进行MySQL全文搜索时

这个 SQL 语句有什么问题?:

SELECT 
 *
FROM 
 hotels 
WHERE 
 MATCH (`HotelNo`,`Hotel`,`Address`,`City`,`CityFR`,`Region`,`RegionFR`,`Country`,`CountryFR`, `HotelText`, `HotelTextFR`, `tagsforsearch`, `tagsforsearchFR`)
AGAINST( CONVERT('+graubunden' USING latin1)  COLLATE latin1_german1_ci IN BOOLEAN MODE)            
ORDER BY Country ASC, Region ASC, City ASC

这不会返回任何结果。 有什么想法把狗埋在哪里吗?


当你定义个体时CHARACTER SETS对于您的列,您可以覆盖在表级别设置的默认排序规则。

您的每一列都有默认值latin1排序规则(即latin1_swedish_ci)。你可以通过运行看到它SHOW CREATE TABLE.

In FULLTEXT查询,索引列有COERCIBILITY of 0,即所有全文查询都转换为索引中使用的排序规则,反之亦然。

你需要删除CHARACTER SET列中的定义或明确将所有列设置为latin1_german_ci:

CREATE TABLE `hotels` (
  `HotelNo` varchar(4) NOT NULL default '0000',
  `Hotel` varchar(80) NOT NULL default '',
  `City` varchar(100) default NULL,
  `CityFR` varchar(100) default NULL,
  `Region` varchar(50) default NULL,
  `RegionFR` varchar(100) default NULL,
  `Country` varchar(50) default NULL,
  `CountryFR` varchar(50) default NULL,
  `HotelText` text,
  `HotelTextFR` text,
  `tagsforsearch` text,
  `tagsforsearchFR` text,
  PRIMARY KEY  (`HotelNo`),
  FULLTEXT KEY `fulltextHotelSearch` (`HotelNo`,`Hotel`,`City`,`CityFR`,`Region`,`RegionFR`,`Country`,`CountryFR`,`HotelText`,`HotelTextFR`,`tagsforsearch`,`tagsforsearchFR`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;

INSERT
INTO    hotels (hotelText, HotelTextFR, tagsforsearch, tagsforsearchFR)
VALUES  ('text', 'text', 'graubünden', 'tags');

SELECT  *
FROM    hotels
WHERE   MATCH (`HotelNo`,`Hotel`,`City`,`CityFR`,`Region`,`RegionFR`,`Country`,`CountryFR`, `HotelText`, `HotelTextFR`, `tagsforsearch`, `tagsforsearchFR`)
AGAINST (CONVERT('+graubunden' USING latin1) COLLATE latin1_german1_ci IN BOOLEAN MODE)
ORDER BY
        Country ASC, Region ASC, City ASC;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mysql德语口音全文搜索时不敏感搜索 的相关文章

  • Mysql 创建定义器

    我创建了一个在 CentOS Web 服务器上运行的 Intranet Web 应用程序 该应用程序使用另一个本地服务器 始终是 CentOS 作为 MySQL 数据库 在数据库内部我创建了例程 这些例程总是这样开始 CREATE DEFI
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 为什么 Assembly.GetManifestResourceStream() 中的文本以三个垃圾字符开头?

    我有一个 SQL 文件作为嵌入式资源添加到我的 VS NET 2008 项目中 每当我使用以下代码读取文件的内容时 返回的字符串总是以三个垃圾字符开头 然后是我期望的文本 我认为这与我正在使用的 Encoding Default 有关 但这
  • MySQL连接字符集问题

    我在 Mac 上使用带有 MySQL 的 velosurf 没有任何编码问题 但是当我切换到 Linux 计算机时 从 velosurf 获得的值未正确编码 我发现这可能是默认连接字符集的问题 在 Mac 上我得到 mysql gt sho
  • 如何在 Sublime Text 中查看文件的当前编码?

    如何在 Sublime Text 中查看文件的当前编码 这看起来是一件很简单的事情 但搜索并没有取得太多成果 任何指示将不胜感激 由于该线程是谷歌搜索中的热门结果 因此以下是 Sublime Text 3 build 3059 的方法 在用
  • gem install mysql:无法构建 gem 本机扩展 (Mac Lion)

    我为 Mac OS X Lion 安装了 MySQL 5 5 27 来自 dmg 现在我尝试安装 mysql gem gem install mysql Building native extensions This could take
  • Mysql 将 int 转换为 MAC

    我有一些数据可以转换 其中有 2 列 其中一列有 IP 它包含整数值 我在 mysql 查询中使用了以下函数 是否有一个函数可以用来转换我的 mac 列 其中包含整数和数据类型是bigint to MAC地址 SELECT INET NTO
  • 如何将大文件 (>1 GB) 的编码转换为 Windows 1252,而不出现内存不足异常?

    考虑 public static void ConvertFileToUnicode1252 string filePath Encoding srcEncoding try StreamReader fileStream new Stre
  • 如何将ElasticSearch与MySQL集成?

    在我的一个项目中 我计划将 ElasticSearch 与 MySQL 结合使用 我已经成功安装ElasticSearch 我可以单独管理ES中的索引 但我不知道如何用 MySQL 实现同样的功能 我读过一些文件 但我有点困惑 没有明确的想
  • MySQL 查询到 CSV [重复]

    这个问题在这里已经有答案了 有没有一种简单的方法来运行MySQL查询来自linux命令行并以csv格式输出结果 这就是我现在正在做的事情 mysql u uid ppwd D dbname lt lt EOQ sed e s g tee l
  • SQL Server 列名区分大小写

    我使用的数据库具有 French CI AS 排序规则 CI 应该代表不区分大小写 但无论如何都是区分大小写的 我试图理解为什么 我断言这一点的原因是 使用 GIVEN 案例设置进行批量插入失败 但使用另一个 Given 案例设置则成功 例
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 显示标准化数据

    跟进问题 添加 2 个不同表的总和 https stackoverflow com questions 39717541 adding sum from 2 different tables 我创建了3个表 members videos v
  • 从按日期时间排序的 MySQL 表中获取用户的最后一个条目

    我有一张看起来像这样的桌子 USERNAME DATA DATETIME Jhon text1 2010 06 01 16 29 43 Mike text2 2010 06 01 16 29 22 Silver text3 2010 05
  • Windows 8.1 升级后 Apache 无法工作 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 今天从 Windows 8 升级到 Windows 8 1 后 Apache 不再工作 我上次从 Windows 7 升级到 Window
  • MySQL 和 Hibernate 之间的主键自增由谁负责?

    MySQL CREATE TABLE role id role INT 11 unsigned NOT NULL AUTO INCREMENT PRIMARY KEY id role AUTO INCREMENT 1 休眠 Entity p
  • MySQL 通过 current_timestamp 选择上个月的数据

    直到今天 当我使用 MySQL 并需要对日期 时间执行操作时 我使用带有 unix 时间戳的 int 列 没有出现任何问题 但今天在阅读了一些指南后 我决定默认使用 current timestamp 测试时间戳列 所以我感兴趣如何按列选择
  • PHP MYSQL文件内容转义问题

    我正在尝试使用 php 将 pdf 文件上传到 mysql 数据库中 除了文件内容之外 一切都很好 无论我如何尝试转义特殊字符 查询总是失败 主要是 未知命令 n 我使用过addslashes mysql real escape strin
  • 使用Perl/DBI/MySQL/InnoDB查找外键信息

    我想以编程方式查找 MySQL 数据库中特定 InnoDB 表的外键 我正在使用 Perl 我偶然发现 dbh gt foreign key info 我刚刚尝试使用它 但似乎有点错误 它不会返回 ON DELETE 和 ON UPDATE
  • 如何在 MySQL 中测试 Select for Update

    我正在表演SELECT FOR UPDATE或 InnoDB 表的行级锁定 我的目的是只有一个请求可以读取同一行 因此 如果两个用户同时请求相同的数据 其中只有一个人获取数据 即第一个触发查询的人 但是我如何测试锁定是否已放置 因为我正在通

随机推荐

  • 用基本控制器进行 Ninject?

    我想知道当你有一个基本控制器时 如何使用 ninject 2 0 进行构造函数注入 I have private readonly IBaseService baseService public BaseController IBaseSe
  • 自动滚动回收器视图滑块

    我是 Android 开发新手 我正在尝试创建一个自动滚动 recyclerview 滑块 它还支持用户事件 例如下一个和上一个按钮以及手动滚动 Something like this 我已经实现了recyclerview和按钮事件处理 但
  • 抑制tensorflow-metal初始化消息

    我有一台 macbook pro m1 max 并通过安装了tensorflow张量流 苹果 下载 https developer apple com metal tensorflow plugin 每次运行使用 keras 或 tenso
  • 了解 PropertyChanged 机制的工作原理(工作流程)

    澄清 1 我不知道如果它有一个特定的名称或单词来用英语或编程俚语引用它 那么这可能是重复的帖子 因为我无法查看它 2 我对这些东西完全是新手 我从未使用过处理程序 所以这是问题的一部分 我试图理解如何NotifyPropertyChange
  • Javascript 变量未在函数内更新

    let number 100 function change number number number 10 change number console log number 上面的代码输出 100 而 let number 100 fun
  • 神经网络不适合异或

    我创建了一个 Octave 脚本 用于使用反向传播训练具有 1 个隐藏层的神经网络 但它似乎不适合 XOR 函数 x输入 4x2 矩阵 0 0 0 1 1 0 1 1 y输出4x1矩阵 0 1 1 0 theta隐藏 输出层权重 z加权总和
  • 将数组更改为字符串而不创建字符串

    我希望实现 String beef new String 3 beef 0 Water beef 1 Chicken beef 2 Paper String empo Arrays toString beef if empo isEmpty
  • 几秒钟后,应用程序被 ios7 中的操作系统杀死 -edit

    我正在创建基于导航的应用程序iOS 7 为此我正在使用 CoreLocation 框架获取用户位置数据 应用程序要求是在特定时间开始在后台获取用户位置 为此我已经实现了静默推送通知didReceiveRemoteNotification f
  • 不同 Windows 版本上的 Ruby Ocra 可执行致命错误

    我制作了一个非常简单的程序 用于添加和组织一系列书籍作者 标题 我在顶部只有一个要求 这是我创建的模块 代码只是标准的 ruby 没有 gem 或任何实现 require relative pairs2d 我使用 ocra 将其转换为可执行
  • 如何填补 data.frame 中的(日期)空白?

    我有一个带有日期列的数据框 这些日期可以出现多次 但也可以出现零次 date value 1 2013 01 01 5 2 2013 01 01 3 3 2013 01 03 3 4 2013 01 04 3 5 2013 01 04 1
  • linux——同时从文件读取/写入文件[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions Linux 对我来说很陌生 我正在思
  • 在FTP服务器上扩展Python的os.walk功能

    我怎样才能使os walk遍历 FTP 数据库的目录树 位于远程服务器上 现在代码的结构方式是 提供注释 import fnmatch os ftplib def find pattern startdir os curdir find f
  • Selenium 3.0.1 与 safaridriver 在 waitForElementVisible() 上失败

    Safari 10 0 1 macOS 塞拉利昂 运行 Codeception 命令时 I gt waitForElementVisible css gt input type text id UserUsername 30 在 Safar
  • 用于构建 OCA(偶尔连接的应用程序)的工具

    我将构建一个内部的偶尔连接的应用程序 OCA 您建议我采用哪些技术 这是我的参数 NET 商店 3 5sp1 C 代码隐藏 winform wpf 银光 SQL Server 后端 2005 or possibly2008年待批准 独立开发
  • 从控制台从 Elastic Beanstalk 实例之一获取公共 DNS

    我们喜欢直接连接到我们的 Elastic Beanstalk 实例之一 因此我们需要知道它的public IP address 我们通常会得到public IP来自 aws console 网站的 EC2 选项卡的实例 这很麻烦 因为我们需
  • Python Flask - 使用装饰器设置 cookie

    我正在尝试编写一个装饰器来检查 cookie 如果不存在则设置一个 这是我为传达这个想法而做出的绝望尝试 def set cookie f def decorated function args kws if cstc in flask r
  • 嵌套三元运算符

    我有这个代码 viewModel PhoneDefault user null string IsNullOrEmpty user PhoneDay string IsNullOrEmpty user PhoneEvening string
  • 为什么 C# 数组没有 Count 属性? [复制]

    这个问题在这里已经有答案了 可能的重复 集合中的计数 长度 大小 https stackoverflow com questions 300522 count vs length vs size in a collection 真的很奇怪
  • 用于负零浮点值?

    考虑以下 C 代码 double someZero 0 std cout lt lt 0 someZero lt lt n prints 0 std cout lt lt someZero lt lt std endl prints 0 问
  • Mysql德语口音全文搜索时不敏感搜索

    让我们看一个酒店表示例 CREATE TABLE hotels HotelNo varchar 4 character set latin1 NOT NULL default 0000 Hotel varchar 80 character