MATCH col 1 col 2 AGAINST expr searchmodifier

  • Slides: 24
Download presentation

Использование Оператор MATCH (col 1, col 2, . . . ) AGAINST (expr [search_modifier])

Использование Оператор MATCH (col 1, col 2, . . . ) AGAINST (expr [search_modifier]) IN NATURAL LANGUAGE MODE IN BOOLEAN MODE WITH QUERY EXPANSION SELECT * FROM articles WHERE MATCH (title, body) AGAINST ('database' IN NATURAL LANGUAGE MODE); Автоматическая сортировка по релевантности. Двойной поиск с параметром WITH QUERY EXPANSION. Регистро-независимый поиск. В качестве expr только литерная строка.

Использование При поиск в режиме boolean могут использоваться операторы: «Звездочка» может быть только справа!

Использование При поиск в режиме boolean могут использоваться операторы: «Звездочка» может быть только справа! + Должно быть 'apple banana' - Не должно быть '+apple +juice' (no operator) Или '+apple macintosh' @distance Расстояние '+apple -macintosh' >~< Вес '+apple ~macintosh' ( ) Группировка '+apple +(>turnover <strudel)' * Маска 'apple*' '"some words"' SELECT * FROM articles WHERE MATCH (title, body) AGAINST ('+My. SQL -Your. SQL' IN BOOLEAN MODE);

Как создать индекс В инсталляторе модуля новый файл install_ft. sql с содержимым: CREATE fulltext

Как создать индекс В инсталляторе модуля новый файл install_ft. sql с содержимым: CREATE fulltext index IXF_B_USER_INDEX_1 on b_user_index (SEARCH_USER_CONTENT); В install. php код: $errors = $DB->Run. SQLBatch($_SERVER["DOCUMENT_ROOT"]. "/bitrix/modules/main/install/mysql/install_ft. sql"); if ($errors === false) { $entity = BitrixMainUser. Table: : get. Entity(); $entity->enable. Full. Text. Index("SEARCH_USER_CONTENT"); } Почему отдельный файл и условное выполнение?

Как использовать $res = BitrixMainUser. Index. Table: : get. List(array( "select" => array("SEARCH_ADMIN_CONTENT"), "filter"

Как использовать $res = BitrixMainUser. Index. Table: : get. List(array( "select" => array("SEARCH_ADMIN_CONTENT"), "filter" => array( "*SEARCH_ADMIN_CONTENT" => BitrixMainSearchContent: : prepare. String. Token("vad dumbrav"), ) )); var_dump(BitrixMainEntityQuery: : get. Last. Query()) string(216) "SELECT `main_user_index`. `SEARCH_ADMIN_CONTENT` AS `SEARCH_ADMIN_CONTENT` FROM `b_user_index` `main_user_index` WHERE MATCH (`main_user_index`. `SEARCH_ADMIN_CONTENT`) AGAINST ('(+inq* +qhzoeni*)' IN BOOLEAN MODE)"; string(277) "SELECT `main_user_index`. `SEARCH_ADMIN_CONTENT` AS `SEARCH_ADMIN_CONTENT` FROM `b_user_index` `main_user_index` WHERE ((UPPER(`main_user_index`. `SEARCH_ADMIN_CONTENT`) like '%INQ%' ESCAPE '!' AND UPPER(`main_user_index`. `SEARCH_ADMIN_CONTENT`) like '%QHZOENI%' ESCAPE '!'))"