PDA

Просмотр полной версии : ПОИСК глюк? или фича?



shurass
11.10.2006, 14:20
Нет поиска коротких фраз V3 C55 C65 если искать *с55* находит С550 моторолу... :D Или Это специально так задумано?

Vladimir_ar
11.10.2006, 18:45
Правильно подмеченно, не работает как нужно!

mobil_lg
11.10.2006, 19:09
ищу по слову "sx1" - пишет нет ничего у меня =))

GSM™
11.10.2006, 20:02
Скоро всё будет, будет и по 3 символа искать, не надо воплей только.

GSM™
11.10.2006, 20:21
Теперь 3 буквы ищется без проблем.

Meowt
12.10.2006, 11:56
Чисто из любопытства, чем "boolean full-text search" Вам приглянулся и чем не угодил стандартный vBulletin'овский?

Сейчас опции ИЛИ вообще недоступно! Ни в каком виде

Как теперь в поиске учесть всё разнообразие моделей?


Для совместимости с MySQL. Не думаю, что этот синтаксис подходит для обычного "человеческого" поиска, но не уверен что делает поиск vBulletin так как я не понимаю простые выражения.

boolean full-text search поддерживает следующие операторы:
+
Плюс, поставленный в начале слова указывает, что это слово должно быть в каждой строке результата результата поиска

-
Минус, поставленный в начале слова, указывает, что этого слова не должно быть ни в одной строке в результате поиска
(не указан никакой оператор)
По-умолчанию (когда не указаны ни +, ни -) слово не обязательно, но строки в которых присутствует это слово, выводятся в первых строках результата поиска (приоритет). Подвязано это к функциям мускуля MATCH() ... AGAINST() без модификатора IN BOOLEAN MODE.

> <
Эти два оператора используются для задания приоритета строк, в которых встречается слово. Оператор > увеличивает приоритет, оператор < уменьшает его. Примеры ниже.

( )
Скобки используются для группировки слов в выражения. Допускается несколько уровней группировки.

~
Знак ~ перед словом используется как оператор отрицания, задавая ОБРАТНЫЙ порядок приоритета слов. Это очень удобно для пометки “лишних” слов. Строка, содержащая это слово будет иметь низший приоритет, но не будет исключено из поиска, как это делает оператор -.

*
Звездочка используется как оператор обрезания слова. В отличие от других операторов, он ставится В КОНЦЕ СЛОВА.

"
Фраза, заключенная в двойные кавычки(‘"’) заставляет поиск искать строку один-в-один похожую на ту что в кавычках. Движок full-text разбивает фразы на слова, и выполняет поиск с индексом FULLTEXT для слов. После этого движок поиска производит поиск подстрок в найденных записях, так, чтобы учитывать все знаки препинания. Например, "тестовая фраза" не найдет "тестовая, фраза".

Если во фразе нет слов, присутствующих в индексе - ничего не будет найдено. Например, если в фразе все слова из СтопЛиста или короче, чем минимальная длина индексированных слов, то ничего не будет найдено.

Следующие фразы демонстируют работу операторов движка full-text:
'apple banana'
Возвращает в результате строки, содержащие любое из слов.

'+apple +juice'
Возвращает в результате строки, содержащие оба слова.

'+apple macintosh'
Возвращает в результате строки, содержащие слово “apple”, но в верхних строках результата будут сроки, содержащие слово “macintosh”.

'+apple -macintosh'
Находит строки со словом “apple” если нет слова “macintosh”.

'+apple +(>turnover <strudel)'
Возвращает в результате строки, содержащие слово “apple” и “turnover”, или “apple” и “strudel” (в любом порядке), фраза “apple turnover” будет приоритетнее (в первых строках результата) чем “apple strudel”.

'apple*'
Возвращает в результате строки “apple”, “apples”, “applesauce”, or
“applet”.

'"some words"'
Возвращает в результате строки, содержащие фразу “some words” (например, строки “some words of wisdom” но не “some noise words”).

Слова, которые игнорирует движок full-text search:
Слишком короткие слова игнорируются. Минимальная длина слова по-умолчанию для движка full-text search - 4 символа.
Игнориются слова из СтопЛиста. Такие как “the” или “some” потому что они слишком популярны и не несут в себе никакой смысловой нагрузки. У движка встроенный СтопЛист, который администратор может изменить.


Прошу пользователей высказать свое мнение о данном способе поиска.

P.S. ОРИГИНАЛ ТУТ (http://www.vbulletin.com/forum/showpost.php?p=1202018&postcount=4)

Meowt
12.10.2006, 12:50
Надеюсь на объективность админа!

Имхо для технического форума не нужен полнотекстовый поиск. Он пригодится если только прикручивать проверку создаваемых сообщений на повторяемость - тут ему самое место. Но никак не для обычного поиска. Стандартный vBulletin search используется повсеместно. Не пойму, зачем изобретать велосипед?

GSM™
12.10.2006, 15:39
Объясняю, что при любых проблемах с базой надо реиндексить поиск всю ночь. При данной схеме база меньше база (мешьше занимают ежедневные backup) и загрузка mysql меньше при поиске. Это вероятно последее объяснение по поиску которое я даю.