Форум русской поддержки Joomla!® CMS
09.12.2016, 23:23:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Не релевантный поиск - как установить максимальное количество символов у слов в запросе?

 (Прочитано 349 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Sven
Осваиваюсь на форуме
***

Репутация: +6/-5
Offline Offline

Сообщений: 119


« : 26.02.2016, 12:04:12 »

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

1. Как сделать.. Если длина слова в запросе меньше 3-х букв, чтобы поиск по нему не происходил?


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

2. Как у всех слов в запросе брать только первые 5 букв, а остальные отсекать?


Если реализовать оба пункта, тогда например, если человек вобьет в поиск "с корицей", то поиск будет происходить только по слову "кориц". Отсечется "с" оно меньше 3-х букв и первые 5 букв от слова "корицей". Такая выдача будет релевантной и вменяемой. Но критично хотя бы первый пункт реализовать из-за него выдача невменяемая.


3. И еще момент, надо запретить поиск, если поле поиска пустое, не заполнено.
« Последнее редактирование: 27.02.2016, 13:53:04 от Sven » Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7781



« Ответ #1 : 26.02.2016, 12:44:09 »

странные у вас желания имхо... следующим будет наверное

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

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

то, о чем вы пишите, имеет место быть. только делается это совсем не так, и тема это большая и совершенно отдельная.
Записан
Sven
Осваиваюсь на форуме
***

Репутация: +6/-5
Offline Offline

Сообщений: 119


« Ответ #2 : 26.02.2016, 13:17:27 »

Зачем вы утрируете? Ответьте просто по существу вопроса, без предположений о моих будущих желаниях))

Цитировать
...тема это большая и совершенно отдельная
Вот именно, что большая, отдельная и сложная, а я предлагаю простое решение - просто брать корень слова без окончания. Что здесь странного? Кому надо с "конями" вместо 5 сделают 3 буквы. В любом случае выдача будет более релевантной чем сейчас.
Вот это сложно реализовать? Первые 5 (3) букв?

Или хотя бы скажите как предлоги отсечь, если в слове меньше 3-х букв (это значит 2 буквы и менее). Или скажите что не знаете как это сделать, или знаете, но не скажете, потому что это сильно противоречит каким-то вашим внутренним принципам. Только не надо вот этих вот предположений...

Кстати, "без корицы" - здесь у "без" 3 буквы - по нему будет поиск.
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7781



« Ответ #3 : 26.02.2016, 13:47:29 »

я предлагаю простое решение - просто брать корень слова без окончания. Что здесь странного?
если бы вы предложили "просто брать корень", то я бы и не писал, что это странно. брать корень, и брать первые 5 букв - это несколько разные вещи, вам не кажется?

Только не надо вот этих вот предположений...
та без проблем. не надо, так не надо Azn
Записан
Sven
Осваиваюсь на форуме
***

Репутация: +6/-5
Offline Offline

Сообщений: 119


« Ответ #4 : 26.02.2016, 14:14:04 »

Ааа вон вы о чем... ок dmitry_stas, попробую с другой стороны зайти тогда)) Забудьте про корень, его конечно же не вычислить.

Давайте для примера возьмем какое-нибудь длинное слово, скажем "табуретка". Да, корень у него длиннее 5-ти букв, целых 7 "табурет". Но если взять даже не 5 первых, а только 3 "таб", разве поиск найдет что-то еще кроме табуреток? Вот о чем я! А уж 5 первых вообще за глаза хватит. Ну пусть даже он там еще что-то найдет, не табуретку, а какую-нибудь тутабочку, но она хотя бы не будет дико выглядеть в общей выдаче с табуретками.

Я конечно не знаю насколько здесь сложная реализация, но если там пара строк всего, чирканите пожалуйста хотя бы как предлоги отсечь, 2 буквы и менее, включая чтобы пустое поле не срабатывало. А если там далеко не пара строк, то забейте..
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7781



« Ответ #5 : 26.02.2016, 14:27:09 »

Цитировать
А если там далеко не пара строк, то забейте..

далеко не 2. и даже не 102.
Цитировать
тема это большая и совершенно отдельная

1. прикрутить Умный поиск Joomla (не очень имхо, сильно базы растут и нагрузка).
2. написать на основе реализации Стеммера Портера для русского языка - долго, но при наличии ресурсов в принципе можно сделать толково (частично реализовано тут, например исправляется неправильная раскладка клавиатуры, отдается предпочтение вхождению слова в название, а только потом в описание, и др.). имхо можно сделать самый гибкий вариант.
3. прикрутить поиск от Яндекса - прикручивается без особых знаний кода, быстро, достаточно мощно, но требуется чтобы страницы по которым ищем были уже в поиске, никак не можем влиять на результаты выдачи, ну и ссылка на Яндекс.
« Последнее редактирование: 26.02.2016, 14:36:17 от dmitry_stas » Записан
nevigen
Moderator
*****

Репутация: +734/-16
Online Online

Пол: Мужской
Сообщений: 8809


http://n*****n.com


« Ответ #6 : 26.02.2016, 18:42:14 »

хммм...
а вы обсуждаете компонент поиска или плагин поиска для ЖШ ?
я просто понять хочу ЖШ причем ?
Записан
Sven
Осваиваюсь на форуме
***

Репутация: +6/-5
Offline Offline

Сообщений: 119


« Ответ #7 : 26.02.2016, 19:27:43 »

Обсуждаем стандартный встроенный в JoomShopping поиск. Никакие плагины и модули тут не обсуждаем.
Я создал пункт меню на этот поиск, при клике открывается вот это:  \components\com_jshopping\templates\default\search\
Записан
nevigen
Moderator
*****

Репутация: +734/-16
Online Online

Пол: Мужской
Сообщений: 8809


http://n*****n.com


« Ответ #8 : 26.02.2016, 19:29:47 »

ааа.. о теперь ясно Wink
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7781



« Ответ #9 : 27.02.2016, 12:30:02 »

как мог упустить, не пойму Azn есть же еще Sphinx
Записан
Sven
Осваиваюсь на форуме
***

Репутация: +6/-5
Offline Offline

Сообщений: 119


« Ответ #10 : 27.02.2016, 13:47:56 »

Sphinx и выше вами предложенные - это все избыточные решения. Поиск по сайту и поиск по всему интернету это две совершенно разные вещи. Вы предлагаете стрелять из пушки по воробьям. Для 500 товаров на сайте достаточно самого примитивного поиска. Пусть это звучит несерьезно, нелепо, смешно, но мне хватило бы за глаза встроенного поиска, если бы в нем была настройка - искать только по первым 5 буквам каждого введенного слова. У меня на сайте такой поиск отрабатывал бы лучше любого сфинкса.

P.S. У поиска встроенного в Joomla хотя бы есть встроенная настройка - не меньше 3 символов и не больше 20, а тут даже этих элементарных настроек нет. По всем страницам магазина (товар, категория, оформление заказа) настройки в админке есть, а по странице поиска вообще ни одной настройки. Я думал в языке PHP есть какие-то готовые стандартные методы, чтобы вводимые символы в инпутах отсекать, брать только первые 5 например, а вы говорите тут чуть ли не весь компонент поиска для этого придется переписывать.
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7781



« Ответ #11 : 27.02.2016, 13:55:41 »

Цитировать
У поиска встроенного в Joomla хотя бы есть встроенная настройка - не меньше 3 символов и не больше 20
так поставьте плагин для ЖШ чтобы использовать поиск Жумла, и используйте его, в чем вопрос?

Показать текстовый блок
Записан
Sven
Осваиваюсь на форуме
***

Репутация: +6/-5
Offline Offline

Сообщений: 119


« Ответ #12 : 27.02.2016, 14:01:57 »

Да не в этом суть, не это мне нужно. Все что написано под P.S. - это лирика, не обращайте внимание на это. Я чуть выше написал что мне надо.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet