Mysql
 sql >> база данни >  >> RDS >> Mysql

Mysql немски акценти нечувствително търсене при пълнотекстови търсения

Когато дефинирате отделни CHARACTER SETS за вашите колони, вие отменяте съпоставянето, което сте задали по подразбиране на ниво таблица.

Всяка от вашите колони има по подразбиране latin1 съпоставяне (което е latin1_swedish_ci ). Можете да го видите, като изпълните SHOW CREATE TABLE .

В FULLTEXT заявки, индексираните колони имат COERCIBILITY от 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;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL, utf8_general_ci и знаци на кирилица

  2. Mysql Преобразуване на колона в ред (Опорна таблица)

  3. получаване на грешка при дефиниране на името на събитието в mysqlworkbench 5.5

  4. Проблем с MySQL str_to_date

  5. Импортирайте колона от CSV в съществуваща MySQL таблица