PHP в деталях



         

Комментарии к статье ""


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.

<


Содержание  Назад  Вперед