Mysql полнотекстовый поиск точная проблема фразы - PullRequest
0 голосов
/ 26 февраля 2011

Используя полнотекстовый поиск в MySQL, я бы хотел получить точную фразу:

"romantic dinner" to be found.

Но я также хотел бы, чтобы каждое из слов могло иметь синонимы, такие как:

"романтические ужины", например, можно найти (у нашего языка есть большая проблема, когда каждое слово имеет 8 окончаний, как) ...

Я пытался:

+"romantic (dinner dinners)" and
"romantic +(dinner dinners)"

но, похоже, ничего не дает результатов ... Возможно ли выполнить логическое ИЛИ внутри точного поиска?

ОБНОВЛЕНИЕ: чтобы сделать это одним вопросом: есть ли способ поместить некоторые логические операторы в точное совпадение ("") в полнотекстовый поиск?

Ответы [ 3 ]

0 голосов
/ 26 февраля 2011
SELECT field_name FROM table_name WHERE MATCH(field_name) AGAINST('romantic* dinner*' IN BOOLEAN MODE)...

определенно вы можете использовать + и - для дальнейшего уточнения вашей справки результатов: http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html

0 голосов
/ 26 февраля 2011

Если «roman * dinn *» не работает для вас, возможно, пришло время взглянуть на что-то вроде Solr: http://lucene.apache.org/solr/, которое позволит выполнять более сложные поиски и уже может иметь средство дляваш язык.

0 голосов
/ 26 февраля 2011

Это только частично решит вашу проблему, но в mysql есть функция soundex () , которая преобразует данную строку в представление soundex.Строка Similars должна иметь одинаковое представление soundex, так что это может быть начало.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...