Чего именно вы надеетесь достичь?
Чтобы лучше понять - и, возможно, проиллюстрировать - что вы просите, давайте обсудим вещи на языке ExpressionEngine , в конце концов, это то, что вы пометили свой вопрос.
Используя тему сайта Agile Records ExpressionEngine, давайте использовать два поля из канала About - Тело и название сотрудника:
Тело
Настраиваемое поле: {about_body}
Столбец MySQL: field_id_4
Должность сотрудника
НастраиваемыйПоле: {about_staff_title}
MySQL столбец: field_id_6
Во-первых, если вы этого еще не сделали, вам нужно создать один индекс FULLTEXT , содержащий всестолбцы, по которым вы ведете поиск.
Используя два приведенных выше столбца, выполните следующую инструкцию SQL из phpMyAdmin или вашего любимого клиента графического интерфейса MySQL:
CREATE FULLTEXT INDEX related_articles
ON exp_channel_data (field_id_4, field_id_6);
Вы можете проверить только что созданныйINDEX с помощью следующего запроса:
SHOW INDEX FROM exp_channel_data;
Чтобы выполнить поиск на естественном языке строки (ключевых слов) по текстовому набору (один или несколько столбцов базы данных), рассмотрите следующее ... где Lorem и Manager являются вашимиключевые слова:
SELECT * FROM exp_channel_data
WHERE MATCH (field_id_4, field_id_6)
AGAINST ('Lorem Manager' IN NATURAL LANGUAGE MODE);
, которые будут возвращать результирующий набор, подобный следующему (упрощено для удобства чтения):
+----------+-------------+------------------------+
| entry_id | field_id_4 | field_id_6 |
+----------+-------------+------------------------+
| 3 | Lorem ipsum | |
| 8 | | Product Manager |
| 4 | | Co-Owner/Label Manager |
+----------+-------------+------------------------+
При использовании полнотекстового поиска на естественном языке необходимо, чтобыстолбцы, названные в функции MATCH (), - это те же столбцы, которые включены в некоторый индекс FULLTEXT в вашей таблице.
Например, в предыдущем примере обратите внимание, что столбцы, названные в функции MATCH () ()field_id_4 и field_id_6 ) совпадают с именами, указанными в определении индекса FULLTEXT таблицы статьи.
Если вы хотите искать в столбцах отдельно ,вам нужно создать отдельные индексы FULLTEXT для каждого столбца.
Некоторые слова игнорируются при полнотекстовом поиске:
- Любое слово, которое являетсяслишком короткое игнорируется.Минимальная длина слов по умолчанию, которые можно найти при полнотекстовом поиске, составляет четыре символа.
- Слова в списке стоп-слов игнорируются.Стоп-слово - это такое слово, как «или», которое встречается настолько часто, что считается, что оно имеет нулевую семантическую ценность.Существует встроенный список стоп-слов, но он может быть перезаписан пользовательским списком.
Список стоп-слов по умолчанию можно просмотреть в 11.9.4.Полнотекстовые стоп-слова документации MySQL.