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德语口音全文搜索时不敏感搜索 的相关文章

  • ODBC 链接表中突然开始出现写入冲突消息

    我有一个 mySQL 数据库 用于跟踪我们的项目并驱动我们的网站显示其信息 为了方便更新数据库 我设置了一个使用 ODBC 连接 MySQL ODBC 5 1 来编辑数据的访问数据库 过去几个月一直运行良好 没有出现任何问题 然而 昨晚用户
  • SQL Server默认字符编码

    默认情况下 Microsoft SQL Server 中数据库的字符编码集是什么 如何查看 SQL Server 中当前的字符编码 编码 In most cases SQL Server stores Unicode data i e th
  • 数据读取过程中遇到致命错误

    我正在进行定期更新表扫描 Using connect1 As New MySqlConnection ConnectLocalhost serverString connect1 Open Dim cmd New MySqlCommand
  • 您可以使用 MySQL 查询来完整创建数据库的副本吗

    我有一个包含 5 个表的 MySQL 数据库的实时版本和一个测试版本 我不断使用 phpMyAdmin 将实时版本中的每个表复制到测试版本 有谁有mysql查询语句来制作数据库的完整副本吗 查询字符串需要考虑结构 数据 自动增量值以及与需要
  • 根据最大值连接表

    这是我正在谈论的内容的一个简化示例 Table students exam results id name id student id score date 1 Jim 1 1 73 8 1 09 2 Joe 2 1 67 9 2 09 3
  • 在 Django 查询中使用 .extra(select={...}) 引入的值上使用 .aggregate() ?

    我正在尝试计算玩家每周玩游戏的次数 如下所示 player game objects extra select week WEEK games game date aggregate count Count week 但姜戈抱怨说 Fiel
  • mod_rewrite, .htaccess 连接mysql数据库

    我希望 htaccess 文件中的 mod rewrite 链接到 mysql 数据库以向我提供映射信息 具体来说 我使用单个代码库来托管多个站点 因此 如果用户请求图像 例如 http www example com images car
  • 如何在 bash 上运行 MySQL 命令?

    以下代码在命令行上运行 mysql user myusername password mypassword database mydatabase execute DROP DATABASE myusername CREATE DATABA
  • 使用 try {} catch {} 与 if {} else {} 相比有何优势

    我正在从 php 中的普通 mysql 切换到 PDO 并且我注意到测试错误的常见方法是使用 try catch 组合而不是 if else 组合 该方法的优点是什么 我可以使用一个 try catch 块而不是多个嵌套的 if else
  • 用教义 2 DBAL 连接子查询

    我正在重构 Zend 框架2应用程序使用学说 2 5 DBAL 而不是 Zend DB ZF1 我有以下 Zend Db 查询 subSelect db gt select gt from user survey status entrie
  • 错误代码:1062。重复条目“PRIMARY”

    因此 我的教授给了我表格将其插入数据库 但是当我执行他的代码时 MySQL 不断给出错误代码 1062 这是冲突表和插入 TABLES CREATE TABLE FABRICANTES COD FABRICANTE integer NOT
  • Magento - 无法重新索引产品价格 - 外键约束失败

    我最近刚刚将我的 magento 商店从 1 4 2 升级到 1 7 0 2 升级进行得很顺利 但是当我尝试在升级后重新索引数据时 产品价格失败了 我尝试过使用php shell indexer php reindexall来自 SSH 它
  • 条件对列表的 In 子句

    有一个表 我需要通过在配对值列表中应用和条件来获取分页记录 下面是解释 假设我有一堂课Billoflading其中有各个领域 表中两个重要字段是 tenant billtype 我有一个包含值的对列表 tenant1 billtype1 t
  • 在 Python 中,如果我有 unix 时间戳,如何将其插入 MySQL 日期时间字段?

    我正在使用 Python MySQLDB 我想将其插入 Mysql 中的 DATETIME 字段 我该如何使用cursor execute 来做到这一点 要将 UNIX 时间戳转换为 Python 日期时间对象 请使用datetime fr
  • 如何在没有 DROP 数据库权限的情况下从命令行删除所有 MySQL 表? [复制]

    这个问题在这里已经有答案了 如何使用命令提示符删除 Windows MySQL 中的所有表 我想这样做的原因是我们的用户有权访问数据库删除 但无权重新创建数据库本身 因此我们必须手动删除表 有没有办法一次删除所有表 请记住 大多数表都与外键
  • 在 SQL 中如何获得整数的最大值?

    我试图从 MySQL 数据库中找出整数 有符号或无符号 的最大值 有没有办法从数据库本身提取这些信息 是否有我可以使用的内置常量或函数 标准 SQL 或 MySQL 特定的 At http dev mysql com doc refman
  • MySQL 薛定谔表:存在,但不存在

    我遇到了最奇怪的错误 有时 在创建或更改表时 我会收到 表已存在 错误 但是 DROP TABLE 返回 1051 未知表 所以我得到了一个无法创建 无法删除的表 当我尝试删除数据库时 mysql 崩溃了 有时它有助于创建另一个具有不同名称
  • Monkeyrunner/jython 中未找到 JDBC 驱动程序错误

    我需要在中插入一些东西DB 我在用着JDBC as a connector jython the script mysql数据库和脚本正在运行CentOS 我的代码看起来像这样 from com android monkeyrunner i
  • 控制数据是否存在于数组中

    我在mysql中有两个不同的表 我正在使用curl从json文件中获取数据 我的第一个表名称是 tblclients 该表存储客户端数据 我的第二个表名称是 tblcustomfieldsvalues 该表使用 tblclients 表的
  • MySQL 连接器 C++ 64 位在 Visual Studio 2012 中从源代码构建

    我正在尝试建立mySQL 连接器 C 从源头在视觉工作室2012为了64 bit建筑学 我知道这取决于一些boost头文件和C 连接器 跑步CMake生成一个项目文件 但该项目文件无法编译 因为有一大堆非常令人困惑的错误 这些错误可能与包含

随机推荐

  • 用基本控制器进行 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