Комментарии к статье ""
16.12.2001 18:59 Iv An [] Вы уж меня простите, но я опять над MySQL поиздеваюсь. Как и в прошлое издевательство, беру OpenLink Virtuoso в её халявном варианте (на халяву только три коннекции, но нам больше и не надо). Пишу CREATE TEXT [XML] INDEX ON docs_table ( docs_text_column ) WITH KEY docs_id_column [USING my_filtering_function] ... [тут ещё много всякого можно понаписать] и индекс создан. А теперь пишу например SELECT чего_надо FROM docs_table WHERE CONTAINS( docs_text_column, '[__enc=''Widonws-1251''] (("сортиров*" or "ранжирова*" or "sorting") and not "сортировка пузырьком")' SCORE_LIMIT 0.1 ) или вот намедни выпендривался -- вернуть XML вида заголовок статьисписок авторов -- для каждой свежей статьи -- у которой внутри тэга упоминается поиск или сортировку, но не сортировка пузырьком. -- (сортировку пузырьком любят верификаторщики в качестве демо-примера, а нам это не в тему) select ARTICLES.ARTICLE_ID as HIT_ID, xquery_eval('{title,authors}', FREETEXT_HIT) as HIT_DATA from ARTICLES where xcontains( 'article[text-contains(abstract, ''("search" or "sort*") and not "bubble* sort*")'')]', ARTICLES.ARTICLE_XML, 0, FREETEXT_HIT ) and ARTICLES.ARTICLE_PUBLISHING_DATE >= '2000-01-01' А можно документы в DAV положить и галочку поставить, чтобы проиндексировались... |
19.12.2001 18:40 Slach [] Кстати... по поводу full_text... вот еще одна ссылочка http://evolt.org/article/Boolean_Fulltext_Searching_with_PHP_and_MySQL/18/15665/index.html |
14.4.2002 03:16 pk [] "Попробовал сравнить скорость работы с вот таким запросом" Как делается подобного рода сравнение? Есди в перле есть спец бенчмарки, то как в php делается сравнение скоростей работы 2-х разных скриптов? Разъясните поподробнее, плиз, и если не сложно, с примерами. Ответ DL: Это делается просто в консоли mysql. |
19.4.2002 17:14 Павел Народ, а как организовать регистро независимый поиск в БД ? Ответ DL: Он и так регистронезависимый, если ты о MySQL |
14.6.2002 12:39 Artem [] Ну я блин с вас фигею! Кто же так полнотекстовый поиск использует! вместо SELECT title, date_format(material_date,'%e.%c.%y') AS date1, MATCH text AGAINST('word1 word2 word3') AS relevance FROM table WHERE text LIKE '%word1%' OR text LIKE '%word2%' OR text LIKE '%word3%' ORDER BY relevance DESC, material_date DESC надо писать: SELECT title, date_format(material_date,'%e.%c.%y') AS date1, MATCH text AGAINST('word1 word2 word3') AS relevance FROM table WHERE MATCH text AGAINST('word1 word2 word3') Вот тогда скорость будет не в 2 раза выше, а в гораздо выше! (может и в 1000000 раз - зависит от БД и данных) Учите, блин, матчасть, блин. Другое дело что "fulltext" все еще полная alpha. (что-бы не сказать жопа) - и индексирование тормозит совсем не по детски. Для нормального его использования все ждут выхода 4.x.x из стадии alpha в стадию хотя-бы beta. |