SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 16.02.2011 02:00:49

sajgak
Участник
Зарегистрирован: 16.02.2011
Сообщений: 4

mysql добавление "-" в список символов

Возникла необходимость при полнотекстовом поиске искать слова с тире (по умолчанию символ "-" является логическим операторым и не считается символом).
Мануал по этому поводу говорит:

Modify a character set file: This requires no recompilation. The true_word_char() macro uses a “character type” table to distinguish letters and numbers from other characters.. You can edit the contents in one of the character set XML files to specify that '-' is a “letter.” Then use the given character set for your FULLTEXT indexes.

Вот только где находится этот character set file гугл не знаетsad Кто то сталкивался с подобным?

Спасибо

Неактивен

 

#2 16.02.2011 02:21:44

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: mysql добавление "-" в список символов

SHOW VARIABLES LIKE 'character_sets_dir';
 


В этой директории по файлу для каждого чарсета.

Неактивен

 

#3 16.02.2011 12:12:43

sajgak
Участник
Зарегистрирован: 16.02.2011
Сообщений: 4

Re: mysql добавление "-" в список символов

Ага, эту директорию я посетил еще в самом начале своих поисков… нашел там индексный файл с описанием всех кодировок.


<charset name="utf8">
  <family>Unicode</family>
  <description>UTF-8 Unicode</description>
  <alias>utf-8</alias>
  <collation name="utf8_general_ci"    id="33">
   <flag>primary</flag>
   <flag>compiled</flag>
  </collation>
  <collation name="utf8_bin"        id="83">
    <flag>binary</flag>
    <flag>compiled</flag>
  </collation>
</charset>
 

Вот только файла непосредственно для utf8 там нет… Как то непонятно получается

Неактивен

 

#4 16.02.2011 18:35:52

sajgak
Участник
Зарегистрирован: 16.02.2011
Сообщений: 4

Re: mysql добавление "-" в список символов

заглянул в значения переменных.

character set client    utf8
(Глобальное значение)    latin1
character set connection    utf8
(Глобальное значение)    latin1
character set database    latin1
character set filesystem    binary
character set results    utf8
(Глобальное значение)    latin1
character set server    latin1
character set system    utf8
character sets dir    /usr/share/mysql/charsets/
collation connection    utf8_general_ci
(Глобальное значение)    latin1_swedish_ci
collation database    latin1_swedish_ci
collation server    latin1_swedish_ci

на основе этого решил редактировать данные для latin1.. с картой вроде разобрался, вот только никакого эффекта изменения не принесли.. Такое ощущение что таки не то правлю

Неактивен

 

#5 16.02.2011 18:57:10

sajgak
Участник
Зарегистрирован: 16.02.2011
Сообщений: 4

Re: mysql добавление "-" в список символов

Временно решил проблему разделением строки с "-" на 2 подстроки
К примеру "Нью-Йорк" меняем на "+Нью+Йорк" (логический оператор + указывает на необходимость появления следующего слова в результате). Получается в принципе тоже самое.. но всеже хочется более изящного решения

Неактивен

 

#6 21.02.2011 11:57:21

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: mysql добавление "-" в список символов

В MySQL есть кодировки в файлах и кодировки встроенные. Встроенные кодировки
Вы никак не сможете отредактировать, к сожалению sad
По сути, все многобайтные кодировки являются встроенными (из-за сложных правил
обхода символов).

В качестве решения — попробуйте брать в кавычки: "Нью-Йорк".

И символ «-» — это дефис (простите за буквоедство) wink

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson