Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

[Поддержка] Поисковая система с морфологией и релевантностью PRO


sv2109
 Поделиться

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

Поисковая система с морфологией и релевантностью PRO


Поисковая система с морфологией и релевантностью PRO


Больше 10 тысяч загрузок модулей от sv2109!

Модуль написал на основе модуля "Поиск с морфологией и релевантностью", который приобрели более 1000 пользователей!

Что делает этот модуль?

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

Модуль тестировался на магазине в котором больше миллиона товаров!

Модуль использует морфологию и релевантность для более точного поиска.

Чем этот модуль отличается от других модулей поиска?

К обычным поисковым модулям относятся: стандартный поиск OpenCart, другие модули поиска, например модуль "Поиск с морфологией и релевантностью".

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

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

Но если у вас тысячи товаров в магазине (или даже десятки и сотни тысяч) или не самый быстрый сервер, то чем больше у вас будет товаров, тем медленнее будет работать поиск на вашем сайте. В некоторых случаях и 5 и 10 и даже больше секунд, что конечно же очень много, все, что больше 1-2 секунды это уже много, пользователи не будут столько времени ждать, они закроют ваш сайт и пойдут на другой.

Как работает этот модуль?

Этот модуль работает по тому же принципу, что и поисковые системы, поэтому он так и называется.
Возьмем для примера поисковую систему Google. После того, как вы вводите в поле поиска, например, "OpenCart" и нажимаете кнопку "Поиск", Google отображает вам нужные результаты за доли секунды. Это возможно потому, что Google не ищет информацию непосредственно на каждом сайте в момент поиска, он уже до этого обошел все сайты и добавил эту информацию в свои очень быстрые базы данных, где все записи проиндексированы и лежат в базе с нужными весами (какой сайт показывать выше в выдаче, какой ниже). После этого Google осуществляет поиск по своих базах, это дает возможность найти сотни тысяч сайтов за доли секунды!
Именно так работает и этот модуль. Сначала он обходит все товары в магазине и добавляет всю информацию в свои таблицы базы данных с индексами.
Когда пользователь что-то ищет на сайте, поиск не обходит десятки полей в тысячах товаров, а ищет всего в одной таблице по проиндексированному одному полю, поэтому результат пользователь получит не через несколько секунд или даже десятков секунд, а через доли секунды, что в десятки и даже сотни раз быстрее стандартного поиска.

Морфология и релевантность

Как известно, стандартный поиск OpenCart просто ужасный. При поиске он разбивает искомую фразу на отдельные слова, после чего находит все товары, в которых встречается любое из этих слов. В результате при поиске по фразе "Монитор Samsung" на первых позициях может оказаться "монитор Acer" (так как в названии есть слово "монитор") или "ноутбук Samsung" так как в названии есть слово "Samsung". В то время, как нужный товар "Монитор Samsung" может быть где-то на 10-той странице. А если вы напишите в поиске не "ноутбук", а напр. "ноутбуки" или сделаете опечатку в слове "Samsung" то поиск вообще ничего не найдет, так как поиск осуществляется только по точному вхождению слова.

Этот модуль написан для того, чтобы исправить все недостатки стандартного поиска.

Для этого у него есть 2 инструмента:

  1. Морфология. Поиск не по точному совпадению, а по корням слов. Теперь написав в поиске "ноутбуки", поиск выдаст все товары в которых встречается и "ноутбуки" и "ноутбук" и "ноутбука" итд. Поддерживаемые словари - русский, ******ский, английский.
  2. Релевантность. При поиске на первых позициях будут материалы с большим суммарным весом. Наибольший вес имеет точное вхождение фразы в начало названия товара, потом вхождение одного или нескольких слов в название (чем больше слов тем больший вес), потом вхождение слова в тег, потом целой фразы в описание, потом отдельного слова в описание. Чем больше совпадений, тем больше вес и тем выше будет этот товар в результатах поиска. Вес каждого совпадения можно корректировать в админке.

Кому нужен этот модуль?

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

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

 

Что нового в третьей версии модуля?

  1. Поиск Добавлен поиск с использованием транслитерации
    Давно многие это просили реализовать, сделал.
  2. Добавлена возможность указывать очередность поиска между поиском с неправильной раскладкой, транслитерацией, неточным поиском
    Раньше это было жестко зашито в коде, сначала шел неточный поиск, а потом если неточный поиск ничего не находит то уже производился поиска по неправильной раскладке, что было не всегда удобно.
  3. Добавлена точная настройка поиска по Категориям. Товары из определенных категорий можно отображать выше или ниже в поиске или убрать из поиска. 
    Пример. Есть магазин, который торгует мобильными телефонами. Вместе с телефонами он также торгует аксессуарами к ним: чехлы, защитные стекла, наушники итд. В названии и описании аксессуаров часто присутствует и модель телефона, которая к тому же часто повторяется, так как модели могут отличаться на 1 букву. И когда пользователь ищет какой-то телефон по модели, то и сам пользователь хочет увидеть в поиске именно телефоны и магазину намного выгоднее продать именно телефон, но в поиске на первых позициях могут быть именно чехлы или защитные стекла, а телефон этой модели далеко ниже в результатах поиска. Новая функция решает эту проблему, теперь настроить поиск можно намного гибче.
  4. Добавлена точная настройка поиска по Производителям. Товары определенных производителей можно отображать выше или ниже в поиске или убрать из поиска. 
    Тоже самое что и по категориям, только по производителям. Магазин может например поднять в выдаче товары производителя, на которые у магазина больше наценка и больше прибыль с их продажи. 
  5. Добавлена настройка по частям речи. Для определенных полей можно увеличить или уменьшить вес слов какой-то части речи или совсем не добавлять их в индекс. 
    Например можно не добавлять в индекс такие части речи как предлоги, союзы, междуметия итд. А вес имен существительных или глаголов наоборот увеличить. Работает только для русского языка.
  6. Добавлена возможно поиска по точному совпадению слова, в более ранних версиях был поиск только по корням слов. 
    Так как раньше поиск искал по частям слов, то иногда точное совпадение слов было в результатах поиска ниже, чем слова с неполным совпадениям. Например пользователь мог искать "красное платье" и на первой позиции мог быть товар "Красный ремень для платья", а товар "Красное платье в белый горошек" могло быть ниже в выдаче, несмотря на то, что в нем точно совпадают все 2 слова. Эта функция исправляет этот момент. 
  7. Добавлена опция не отображать в результатах товары, которых нету на складе, в более ранних версиях из можно было только отображать в конце списка. 
    Также многие давно просили реализовать это, сделано. 
  8. Добавлены синонимы. 
    Теперь можно прописать наборы синонимов и товар будет находиться и по основному слову и по его синонимам. Например по слову "телефон" находить товары, где есть "смартфон". 
  9. Больше десятка других улучшений по поиску, индексации, дизайну и т.д.
    Все они не очень большие, но все вместе также значительно улучшают весь поиск. 

 

Что нового во второй версии модуля?

  1. Поиск по вхождению слова и по суффиксам. Этого многим очень не хватало в 1 версии, так как многим нужен был поиск по вхождению для напр. модели или артикула. Но этого не было в 1 версии, потому что такой поиск, если сделать его просто, очень сильно (в сотни раз) сказался бы на скорости поиска. Во второй версии был написан функционал быстрого (!) поиска по вхождению. 
  2. Более точная релевантность. В 1 версии было 2 веса для слова: если слово первое (в напр. названии товара) и все остальные слова. То есть и слово, которой второе и слово которое 20-е имели один вес. Во 2 версии есть 2 веса: вес первого слова и вес последнего. Все остальные слова внутри получают веса динамически в зависимости от их положения и к-ва слов в названии. Таким образом чем ближе слово к началу тем больше у него вес и товары, у которых искомое слово будет стоять ближе к началу будут выводиться выше в результатах. Мало того, если поиск идет по вхождению, то вес также режется пропорционально части слова. Тем самым достигается большая точность релевантности поиска. 
  3. Добавлен неточный поиск, поиск слов созвучных с искомым. То есть, можно найти товары, даже если ввести какое-то слово с опечаткой или грамматической ошибкой, конечно не все ошибки модуль найдет, но многие - да.
  4. Лучший алгоритм поиска по логике И. Эта часть кода была полностью переписана, теперь в модуле такой поиск работает по новому алгоритму, который и на скорость не влияет и более точно находит только товары, в которых есть все слова из поисковой фразы. 
  5. Поддержка OpenCart 3.0

Возможности

  • модуль написан на основе модуля "Поиск с морфологией и релевантностью", поэтому содержит весь огромный функционал того модуля
  • использование морфологии и релевантности для более точного поиска
  • выбор логики поиска для поиска по фразам из нескольких слов: И, ИЛИ
  • поддержка мульти-магазина
  • возможность отключить в поиске дату поступления товаров
  • разные типы поиска (по точному совпадению или по началу слова)
  • режим исправления раскладки клавиатуры ("фззду" -> "apple")
  • учитывать наличие на складе (товары, которых нет в наличии будут отображаться в конце поиска)
  • возможность включить кеширование результатов
  • возможность добавлять новые поля для поиска, например можно добавить поиска по id товара, мета H1 и почти по любому полю товара.
  • для каждого поля можно: включить морфологию, указать минимальную длину слова, указать вес вхождения слова в начало или середину поля
  • возможность исключить некоторые слова из поиска
  • возможность заменить слова при поиске (например слова с ошибками: "aple" -> "apple")
  • поддержка нескольких режимов индексации: индексация по крону, автоматическая индексация после каждого добавления, изменения, удаления товара, ручная индексации на странице настроек модуля с поддержкой пакетного создание индексов (можно запустить процесс и оставить страницу открытой на продолжительное время)
  • поиск по вхождению
  • неточный поиск

 

Что нового во второй версии модуля?

  1. Поиск по вхождению слова и по суффиксам. Этого многим очень не хватало в 1 версии, так как многим нужен был поиск по вхождению для напр. модели или артикула. Но этого не было в 1 версии, потому что такой поиск, если сделать его просто, очень сильно (в сотни раз) сказался бы на скорости поиска. Во второй версии был написан функционал быстрого (!) поиска по вхождению. 
  2. Более точная релевантность. В 1 версии было 2 веса для слова: если слово первое (в напр. названии товара) и все остальные слова. То есть и слово, которой второе и слово которое 20-е имели один вес. Во 2 версии есть 2 веса: вес первого слова и вес последнего. Все остальные слова внутри получают веса динамически в зависимости от их положения и к-ва слов в названии. Таким образом чем ближе слово к началу тем больше у него вес и товары, у которых искомое слово будет стоять ближе к началу будут выводиться выше в результатах. Мало того, если поиск идет по вхождению, то вес также режется пропорционально части слова. Тем самым достигается большая точность релевантности поиска. 
  3. Добавлен неточный поиск, поиск слов созвучных с искомым. То есть, можно найти товары, даже если ввести какое-то слово с опечаткой или грамматической ошибкой, конечно не все ошибки модуль найдет, но многие - да.
  4. Лучший алгоритм поиска по логике И. Эта часть кода была полностью переписана, теперь в модуле такой поиск работает по новому алгоритму, который и на скорость не влияет и более точно находит только товары, в которых есть все слова из поисковой фразы. 
  5. Поддержка OpenCart 3.0

 

 

Таблица сравнения версий модулей
 

Поиск с морфологией и

релевантностью,

версия 3

Search Suggestion -

Поиск с автодополнением,

версия 4

Этот модуль -

Поисковая система,

версия 3

Скорость поиска низкая низкая очень высокая
Релевантность средняя нету очень высокая
Логика И средняя средняя хорошая
Поиск по вхождению
есть (медленный)  
есть (медленный)  
есть
Неточный поиск     нету нету есть
Транслитерация     нету есть есть
Смена раскладки нету есть есть
Коэффициенты для  категории     нету нету есть
Коэффициенты для производителей    нету нету есть
Настройки частей речи нету нету есть
Поиск по точному совпадению слова   нету нету есть
Синонимы нету нету есть
Поиск в шапке сайта нету есть нету
Поддержка OpenCart     1.5 - 3 1.5 (версия 3), 2.0 - 3 1.5 - 3
       

 

Модуль совместим с модулями:

  1. Search suggestion - поиск с автодополнением
  2. Фильтр категорий в поиске
  3. История Поиска
  4. Похожие товары с морфологией и релевантностью

Совместимость:

OpenCart/ocStore 3.x, 2.0.x, 2.1.x, 1.5

 

Модуль использует IonCube, обычно на 99% хостингов он используется но на всякий случай можете проверить.

Одна лицензия модуля позволяет установить этот модуль на 1 домене.

Демо:

Сайт

Админка


Условия обновлений с версии 2 на 3:
 

Спойлер

 

Для обновления с версии 2 на версию 3 - пишите в ЛС. 

Для покупателей, которые приобрели вторую версию модуля после 1 мая 2020-го года обновление бесплатное.

Для покупателей, которые приобрели вторую версию модуля после 1 июля 2019-го года обновление платное, стоимость обновления составляет 250 рублей.

Для покупателей, которые приобрели вторую версию модуля до 1 июля 2019-го года обновление платное, нужно обновить лицензию модуля, стоимость обновления составляет 839 рублей (1199р-30%).

Обновление включает как код модуля, так и помощь в установке и настройке. 

 

 

Для связи с автором модуля пишите в ЛС на форуме
Условия оказания поддержки

© Стасюк Владимир (sv2109.com), 2016


  • Автор
  • долучення
    24.07.16
  • Категорія
  • Системные требования
  • Метод активации
    По запросу в ЛС
  • Ioncube Loader
    Требуется
  • ocStore
    3.0
    2.3
    2.2
    2.1
    1.5.5.1.2
    1.5.5.1.1
    1.5.5.1
    1.5.4.1.2
    1.5.4.1.1
    1.5.4.1
    1.5.3.1
  • OpenCart.Pro, ocShop
    Opencart.pro 2.3
    Opencart.pro 2.1
    OcShop 2.0.3.х
    OcShop 1.5.6.4.х
  • Звернення до сервера розробника
    Нет

 

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

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

google много чего умеет, это поисковая система, которая стоит миллиарды долларов, конечно же что она ищет лучше модуля за 15$ 

 

на в модуле можно делать замену слов, например для слов с опечатками и тогда по smssung модуль тоже найдет товары:

http://demo.sv2109.com/ocstore2102_2/index.php?route=product/search&search=smsung

 

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

google много чего умеет, это поисковая система, которая стоит миллиарды долларов, конечно же что она ищет лучше модуля за 15$ 

 

на в модуле можно делать замену слов, например для слов с опечатками и тогда по smssung модуль тоже найдет товары:

http://demo.sv2109.com/ocstore2102_2/index.php?route=product/search&search=smsung

 

Морфологический разбор слабоват

Советую совмещать (или вообще основным сделать) по типу "слухового" (у меня есть реализация - могу дать), технически тривиально, т е точно также как у вас сейчас реализовано, но база не слов, а "морфо- слухо" хешей

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

ищет  и вправду быстро
скидки владельцам Поиск с морфологией и релевантностью PRO будет?

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


Советую совмещать (или вообще основным сделать) по типу "слухового" (у меня есть реализация - могу дать), технически тривиально, т е точно также как у вас сейчас реализовано, но база не слов, а "морфо- слухо" хешей

 

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

 

ищет  и вправду быстро

скидки владельцам Поиск с морфологией и релевантностью PRO будет?

да, конечно. 

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

На демо вообще ничего не срабатывает, увы.

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

по фразе "ipho" не ищет...

там может лимит в 5 символов ?

нет, в настройках стоял поиск по точному слову, не по началу,

только что поменял настройки, теперь находит

http://demo.sv2109.com/ocstore2102_2/index.php?route=product/search&search=ipho

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

а почему по фразе "ipho"  также показивает  

iPod Touch и iPod Nano   ??

[/quote

Потому что в описании (а поиск включен по описанию) одного есть "iPod touch features the same multi-touch screen technology as iPhone. " а второго " and sync your iPod or iPhone with ease."

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

етот модуль еще и настроить с трудом будет...куча наворотов ))или не будет искать ниче или и то что искать не надо :-)

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


етот модуль еще и настроить с трудом будет...куча наворотов ))или не будет искать ниче или и то что искать не надо :-)

Функциональный модуль не может быть простым, чем больше функционал, тем больше в нем будет настроек, 

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

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

Неплохо на демке сделать тысяч 50 товаров чтобы показать скорость

Поиск на 10 товаров как то не серьезно ;)

  • +1 3
Ссылка на комментарий
Поделиться на других сайтах

Неплохо на демке сделать тысяч 50 товаров чтобы показать скорость

Поиск на 10 товаров как то не серьезно ;)

согласен, просто нету тестовой базы на 50 тыс. товаров, 

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

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

  • 2 месяца спустя...

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

 

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

Или "Мониторы Самсунг" выдавались "Мониторы samsung"

 

Как я понимаю реализация данного метода возможна через перевод русских букв в транслит и последующее исправление ошибок путем замены слов.

 

Если это не реализовано, планирует ли автор добавить этот весьма полезный функционал? :-)

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


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

 

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

Или "Мониторы Самсунг" выдавались "Мониторы samsung"

 

Как я понимаю реализация данного метода возможна через перевод русских букв в транслит и последующее исправление ошибок путем замены слов.

 

Если это не реализовано, планирует ли автор добавить этот весьма полезный функционал? :-)

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

  • +1 2
Ссылка на комментарий
Поделиться на других сайтах

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

Большое спасибо за ответ! Буду думать над приобретением... 

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


  • 4 недели спустя...

Добрый день.

 

А можно ли осуществить такой функционал, чтобы, если покупатель забыл переключить раскладку и начал писать, к примеру, английскими буквами - русские слова, поиск понимал этот ввод правильно - по русски, и наоборот?

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


Добрый день.

 

А можно ли осуществить такой функционал, чтобы, если покупатель забыл переключить раскладку и начал писать, к примеру, английскими буквами - русские слова, поиск понимал этот ввод правильно - по русски, и наоборот?

это уже реализовано в модуле

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

А будет ли работать на Opencart 2.3.0.2, если нет, то планируется ли?

планируется, но на данный момент она еще не готова. 

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

С жадностью прочитал описание, и уже было побежал за денюжками, Как вдруг в конце описания увидел совместимость.. Только 2.хх

Горе моё не передать словами.

Пичаль, пойду искать что-нибудь более-менее похожее под 15512

И все же автор молодец!

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


С жадностью прочитал описание, и уже было побежал за денюжками, Как вдруг в конце описания увидел совместимость.. Только 2.хх

Горе моё не передать словами.

Пичаль, пойду искать что-нибудь более-менее похожее под 15512

И все же автор молодец!

похожее для 1.5:

https://opencart-forum.ru/files/file/3267-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA-%D1%81-%D0%BC%D0%BE%D1%80%D1%84%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D0%B5%D0%B9-%D0%B8-%D1%80%D0%B5%D0%BB%D0%B5%D0%B2%D0%B0%D0%BD%D1%82%D0%BD%D0%BE%D1%81%D1%82%D1%8C%D1%8E-pro/

 

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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

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

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.