Перейти к публикации

Проблема в полнотекстовом поиске


Рекомендованные сообщения

Наблюдаю странное поведение при поиске средствами самого DLE.

Например вбиваем в поиск часть слова "полиц"  (без кавычек)

При включении "простого" поиска на сайте находятся все вхождения слова : полиция, полицейский, полиции и проее.

При включении "полнотекстового" поиска вообще ничего не находится.

Это так задумано?

Ссылка на сообщение
Поделиться на других сайтах
36 минут назад, YuriBtr сказал:

При включении "полнотекстового" поиска вообще ничего не находится.

Это так задумано?

Конечно причем не нами, а MySQL сервером. Нужно просто понимать что такое полнотекстовый поиск и принципы его работы. При полнотекстовом поиске MySQL создает специальные отдельные ключи из отдельных слов текста и ищет по словам. Индексируются слова целиком а не части слова. Поэтому по части слова у вас ничего не найдется. Преимуществом полнотекстового поиска является то, что нет необходимости соблюдать порядок слов. Например если задается фраза, то первое слово может находится в конце текста, а последнее в начале, и все будет найдено. А при простом поиске порядок важен.

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, celsoft сказал:

Конечно причем не нами, а MySQL сервером. Нужно просто понимать что такое полнотекстовый поиск и принципы его работы. При полнотекстовом поиске MySQL создает специальные отдельные ключи из отдельных слов текста и ищет по словам. Индексируются слова целиком а не части слова. Поэтому по части слова у вас ничего не найдется. Преимуществом полнотекстового поиска является то, что нет необходимости соблюдать порядок слов. Например если задается фраза, то первое слово может находится в конце текста, а последнее в начале, и все будет найдено. А при простом поиске порядок важен.

Может пора подумать об умном поиске в DLE?
А то пока что два выбора, и то оба с костылями... Объединить бы их в какой то комбинированный и сделать третий тип.
И хотелось бы уже увидеть настройку типа поиска в настройках групп, а то администрации удобен такой то поиск, журналистам больше такой подходит, а пользователям вот такой, но выбора нет.

Ссылка на сообщение
Поделиться на других сайтах
7 часов назад, SN74 сказал:

Может пора подумать об умном поиске в DLE?
А то пока что два выбора, и то оба с костылями... Объединить бы их в какой то комбинированный и сделать третий тип.

Это "положит" большинство обычных тарифных хостингов, т.к. требует очень больших ресурсных затрат сервера.

Ссылка на сообщение
Поделиться на других сайтах
20 часов назад, celsoft сказал:

Это "положит" большинство обычных тарифных хостингов, т.к. требует очень больших ресурсных затрат сервера.

Что именно положит?
Дак в том то и смысл, что бы можно было для разных групп разный поиск использовать, тогда допустим платники получат самый удобный и функциональный, гости самый просто или вообще без него, а пользователи что то среднее.

Ссылка на сообщение
Поделиться на других сайтах

Спасибо за ответ. Получается либо ищем по части одного слова и получаем результат со всеми его формами, без учета релевантности (простой поиск).

Либо ищем точное словосочетание без учета его возможных форм (полнотекстовый поиск). Верно?

 

Если все так, то первый вариант гораздо более практичен. либо надо давать возможность "на лету" переключать режим поиска самим пользователям.

 

Еще вариант - все таки встроить в форму интеллектуальный поиск от Гугла или Яндекса. Там все гораздо умнее, на основе ИИ.

Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, YuriBtr сказал:

Еще вариант - все таки встроить в форму интеллектуальный поиск от Гугла или Яндекса.

Это не требует поддержки со стороны DLE, делается это в шаблонах и работает независимо от DLE. Можете это реализовать в своих шаблонах.

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, celsoft сказал:

Это не требует поддержки со стороны DLE, делается это в шаблонах и работает независимо от DLE. Можете это реализовать в своих шаблонах.

Знаю, но ИМХО это некошерно

Ссылка на сообщение
Поделиться на других сайтах
16 минут назад, YuriBtr сказал:

Знаю, но ИМХО это некошерно

Что это значит? Какую дают реализацию поисковики, ту и нужно делать. Что вы собираетесь делать через DLE, если поисковики через PHP это вообще не предусматривают? И кошерность или некошерность тут совершенно не причем. Других реализаций попросту не существует.

Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, celsoft сказал:

Что это значит? Какую дают реализацию поисковики, ту и нужно делать. Что вы собираетесь делать через DLE, если поисковики через PHP это вообще не предусматривают? И кошерность или некошерность тут совершенно не причем. Других реализаций попросту не существует.

Согласно требованиям политик конфиденциальности, нужно стремиться уменьшить зависимость сайта от внешних служб. В этом случае применение Гугла или Яндекса просто для поиска на сайте как то малообоснованно.

Плюс ко всему надо не забывать что у Гугла часто вываливается капча при поиске через Opera VPN. А Яндекс вообще забанен для украинцев. Вот и выходит что есть объективные сложности.

 

В этом случае было бы круто внедрить локальный поисковик с ИИ, который постоянно обучается и пропускает через себя все размещенные статьи на сайте.

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, YuriBtr сказал:

Согласно требованиям политик конфиденциальности, нужно стремиться уменьшить зависимость сайта от внешних служб. В этом случае применение Гугла или Яндекса просто для поиска на сайте как то малообоснованно.

Плюс ко всему надо не забывать что у Гугла часто вываливается капча при поиске через Opera VPN. А Яндекс вообще забанен для украинцев. Вот и выходит что есть объективные сложности.

 

В этом случае было бы круто внедрить локальный поисковик с ИИ, который постоянно обучается и пропускает через себя все размещенные статьи на сайте.

@celsoft напишите ему нейросеть, он же так просит...

Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, Gameer сказал:

@celsoft напишите ему нейросеть, он же так просит...

Смишно, да. Но варианты есть, например Yioop.

Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, YuriBtr сказал:

Смишно, да. Но варианты есть, например Yioop.

Только DLE расчитан на всякие школохостинги, что бы набить сервер под зявязку, и оно как то работало.
Это же не битрикс которому из коробки уже VPS среднюю минимум подавай, тут такой поиск сразу срежет часть аудитории, отсюда разработчик и не хочет внедрять его.

Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, YuriBtr сказал:

Согласно требованиям политик конфиденциальности, нужно стремиться уменьшить зависимость сайта от внешних служб. В этом случае применение Гугла или Яндекса просто для поиска на сайте как то малообоснованно.

Вот вы сами не можете определиться, а пишите нам реализуейте. Это же ваши личные слова:

17 часов назад, YuriBtr сказал:

Еще вариант - все таки встроить в форму интеллектуальный поиск от Гугла или Яндекса.

На что вам ответили, что это требует поддержки DLE, и можно сделать хоть сегодня на любой версии DLE. А потом тут же пишите нужно стремится не использовать. Я так понимаю вы сами не знаете, что хотите.

3 часа назад, SN74 сказал:

Только DLE расчитан на всякие школохостинги, что бы набить сервер под зявязку, и оно как то работало.

DLE рассчитан на то, чтобы не создавать не нужной и избыточной нагрузки на сервер.

3 часа назад, SN74 сказал:

Это же не битрикс которому из коробки уже VPS среднюю минимум подавай, тут такой поиск сразу срежет часть аудитории

Ваше сообщение было бы уместно, если бы не одно но. Битрикс использует обычный полнотекстовый поиск и никакой другой, точно такой же как и в DLE. Все ваши сообщения в данном вопросе от незнания доступных стеков технологий реализации.

3 часа назад, SN74 сказал:

отсюда разработчик и не хочет внедрять его.

Я например реалист. И знаю что можно реализовать на сегодняшний день, а что нет. Глупо делать то что невостребовано и недоступно 99,99% процентам пользователей.

Ссылка на сообщение
Поделиться на других сайтах
21 минуту назад, celsoft сказал:

На что вам ответили, что это требует поддержки DLE, и можно сделать хоть сегодня на любой версии DLE. А потом тут же пишите нужно стремится не использовать. Я так понимаю вы сами не знаете, что хотите.

Если вы не читаете внимательно то что я писал, то объясняю еще раз: я ищу нормальный, полнотекстовый поиск, без учета формы введенных слов и по возможности без внешних зависимостей.

 

Но дальше пишу, что на данный момент есть три варианта, доступных для пользователей DLE:

1. ищем по части одного слова и получаем результат со всеми его формами, без учета релевантности (простой поиск).

2. ищем точное словосочетание без учета его возможных форм (полнотекстовый поиск).  

3. встроить в форму интеллектуальный поиск от Гугла или Яндекса. Там все гораздо умнее, на основе ИИ (но есть внешние зависимости)

 

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

Поэтому вопрос снимается. Тему можно закрывать.

Ссылка на сообщение
Поделиться на других сайтах
33 минуты назад, YuriBtr сказал:

Ни один из этих вариантов не удовлетворяет меня полностью. Но как бы ни было, я понимаю, что если это затратно по человекоресурсам, то оно будет дорого стоить разработчику.

На самом деле это будет дорого не разработчикам, а дорого вам. ИИ морфологический поиск не берется из ниоткуда, чтобы он появился ваш сервер должен обработать невероятно большой массив информации, и делать это постоянно по мере изменения и добавления информации. Где вы возьмете на это ресурсы? У вас есть в запасе хотя бы кластер из пары десятки серверов, чтобы обработать только русский язык ? У обычного человека этого в запасе нет. Не нужно думать, что если у яндекса есть то это может сделать кто угодно. У яндекса этим ни один датацентр с не одной тысячей серверов этим занимается. Это недоступно простым смертным. А у кого на это есть деньги, не ждут этого от DLE, они их интегрируют собственными средствами.

39 минут назад, YuriBtr сказал:

На самом деле я от вас хотел получить ответ, что "да, мол, других вариантов поиска нет и не предвидится"

Этот ответ очевиден, при текущем стеке технологий, вы получаете и так самое лучшее из имеющегося. До появления чего то более лучшего ничего не может измениться. Но пока на горизонте ничего нет. Есть конечно более лучшие технологии, но оно пока недоступно массово, все что существует на данный момент, пока что очень дорого конечному пользователю.

Ссылка на сообщение
Поделиться на других сайтах
В 16.03.2018 в 10:17, celsoft сказал:

DLE рассчитан на то, чтобы не создавать не нужной и избыточной нагрузки на сервер.

Дак сделайте хороший поиск, и дайте возможность его тонкой настройки, и тем кому нужно будут пользоваться, тем кому не хватает ресурсов будут либо тюнить, либо не пользоваться.
Если вы реализуете "гуглояндесопоиск" из коробки, то просто будет ещё удобнее посетителям сайтов на DLE, сейчас поиск это очень слабое место, т.к. кардинально он не улучшался уже очень давно, нет даже опциональной подсветки поисковых слов в тексте.

В 16.03.2018 в 10:17, celsoft сказал:

Ваше сообщение было бы уместно, если бы не одно но. Битрикс использует обычный полнотекстовый поиск и никакой другой, точно такой же как и в DLE. Все ваши сообщения в данном вопросе от незнания доступных стеков технологий реализации.

Битрикс тут приплетался из-за его чрезмерной прожорливости, а не в контексте поиска.

Ссылка на сообщение
Поделиться на других сайтах
56 минут назад, SN74 сказал:

Дак сделайте хороший поиск, и дайте возможность его тонкой настройки, и тем кому нужно будут пользоваться, тем кому не хватает ресурсов будут либо тюнить, либо не пользоваться.

Вам и дали выбор. И того поиска и того быть не может. MySQL не подразумевает такой совместной работы.

58 минут назад, SN74 сказал:

то просто будет ещё удобнее посетителям сайтов на DLE, сейчас поиск это очень слабое место, т.к. кардинально он не улучшался уже очень давно

И не улучшиться, т.к. поиск предоставляет MySQL, пока в нем ничего нового не появится, это не появиться и в DLE.

58 минут назад, SN74 сказал:

Если вы реализуете "гуглояндесопоиск" из коробки, то просто будет ещё удобнее посетителям сайтов на DLE

Я вам уже написал что это недоступно обычному пользователю, и написал почему. Вы видимо не читаете. Мы не делаем то, что в итоге недоступно как минимум 99,99% пользователям скрипта. А вы один не покроете стоимость разработки. Хотя ... если хотите, вы можете единолично оплатить всю разработку при желании, почему бы и нет, я просто не знаю ваших финансовых возможностей. 

1 час назад, SN74 сказал:

Битрикс тут приплетался из-за его чрезмерной прожорливости, а не в контексте поиска.

Я не знаю зачем вы его "припрели" в теме про поиск, я вам написал, что технологии поиска в нем по БД такие же как в DLE, как собственно не только в Битрикс, а во всех коробочных CMS без исключения, потому как поиск это инструменты предоставляемые MySQL сервером.

Ссылка на сообщение
Поделиться на других сайтах
22 часа назад, celsoft сказал:

Вам и дали выбор. И того поиска и того быть не может. MySQL не подразумевает такой совместной работы.

Можно же делать хитрое объединение на php сделать, как вы делали с подсчётом новостей в категориях.
Или прямо ну совсем ничего сделать нельзя?

По подсветке текста можно же подумать? И сделать опционально например, просто выделять нужные слова div-ом с определённы классом.

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, SN74 сказал:

Или прямо ну совсем ничего сделать нельзя?

Ничего, потому как один взаимоисключает другой, и если добавить от одного запроса в другой, потеряется ранжирование.

 

1 час назад, SN74 сказал:

По подсветке текста можно же подумать?

Когда в DLE было только одно поле, краткая новость, оно было, теперь контент может выводится тысячами различных доп. полей, этого нет, потому как нагрузка становиться через чур высокой. Потому как чтобы "подсветить" нужно корректно разбрать и потом собрать HTML код, и не разрушить его. Ваша эта идея не уникальна, и много лет назад в DLE была подсветка.

Ссылка на сообщение
Поделиться на других сайтах

Скажите, а полнотекстовый поиск действительно гораздо эффективнее простого и намного ли больше он потребляет ресурсов чем простой поиск? Потребление этих излишних ресурсов действительно оправдано? В чём его отличие от простого поиска? И при включении полнотекстового поиска в поиске на лету тоже будет производиться полнотекстовый поиск с более тяжелыми запросами?

Ссылка на сообщение
Поделиться на других сайтах
16 минут назад, radrigo сказал:

Скажите, а полнотекстовый поиск действительно гораздо эффективнее простого и намного ли больше он потребляет ресурсов чем простой поиск? Потребление этих излишних ресурсов действительно оправдано? В чём его отличие от простого поиска?

У всех разные предпочтения, поэтому и выбор есть. 

 

17 минут назад, radrigo сказал:

И при включении полнотекстового поиска в поиске на лету тоже будет производиться полнотекстовый поиск с более тяжелыми запросами?

В поиске "на лету", используется всегда простой поиск, не полнотекстовый. Полнотекстовый поиск не может быть по частям слова, а поиск на лету это показ по мере набора слова.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...