2012-01-10 4 views
8

У меня есть одна проблема, от которой я отчаянно нуждаюсь в вашей помощи. Я на Magento ver. 1.6.1.0, всякий раз, когда я ищу с предложением типа «милые ботинки ребенка» в magento, результаты не точны, но когда я ищу только слово «симпатичный» или «ботинки», то это дает мне результат.magento search issue

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

+0

Поиски Magento не выполняют фразу. У вас есть SQL Like match, который ищет% word% с итерацией для каждого слова в запросе, а затем применяет логику AND/OR (И дает наилучшие результаты по мере совпадения каждого слова в результатах) или Fulltext, который должен давать лучше чем он делает. –

ответ

4

Параметры поиска можно найти на бэкэнд в разделе «Система»> «Каталог»> «Поиск по каталогу», вероятно, у вас есть тип поиска, установленный в LIKE. Вы сможете получить лучшие результаты, используя режим FULLTEXT.

+0

Может потенциально получить лучшие результаты, используя режим FULLTEXT, когда он был правильно настроен с помощью настроек MySql my.cnf ... –

+0

Я изменил его на комбинированные LIKE и FULLTEXT. Прекрасно работает для меня. – PiTheNumber

0

Для поиска товара Magento требуется несколько настроек, чтобы получить его функциональность. Поиск Like был изменен с логики AND на логику OR в 1.5/1.6 и дает лучшие результаты при возврате обратно в логику AND. Это было решено в нескольких потоках на форумах Magento на веб-сайте Magento. Еще одно решение состоит в том, чтобы отрубить множество множественных чисел, которые также рассматриваются там.

Причина для резки трайлин "s" заключается в том, что большинство людей не ищут «манометр для масла», а «манометры давления масла», что дает общее количество промахов, когда вы продаете масло 0-100 фунтов на квадратный дюйм Манометр". Кроме того, все элементы, заканчивающиеся на «ies», равны их единице. Редко вы продаете «батареи самолетов RC», это будет конкретным, как «1200aH авиационная батарея», и поэтому ваши менее опытные поисковые запросы никогда не совпадают.

«Обувь для младенца» никогда не будет регистрировать хит, если он не появится в элементах, которые вы используете для заполнения индекса поиска по всему тексту. Кто в любом случае продает предмет под названием «милые ботинки ребенка»? Обычно я использую синоним этих типов поиска, чтобы попасть в определенную категорию, в которой перечислены элементы. Некоторые поиски клиентов слишком субъективны, чтобы соответствовать объективной природе поиска продукта (фактические позиции или туманная идея).

2

Я получил мой вопрос решен по этой ссылке - https://stackoverflow.com/questions/1953715/magento-search-not-returning-expected-results

Я пошел на эту строку в приложение/код/​​ядра/Mage/CatalogSearch/Модель/Resource/Fulltext.php

и сделал это (ниже)

копия приложения/код/​​ядро ​​/ Mage/CatalogSearch/Модель/mysql4/Fulltext.php к приложению/код/​​местные/Mage/CatalogSearch/Модель/mysql4/Fulltext.php

линия 341 - 343 приложение /code/local/Mage/CatalogSearch/Model/Mysql4/Fulltext.php

if ($ like) { $ likeCond = '('. join ('OR', $ like). ')'; } изменения в

если ($), как { $ likeCond = '(' присоединиться ('AND', $ т.п.).. ')'; }

+1

FYI вы никогда не должны изменять Magento core ... расширьте его с помощью модуля, переписывающего файлы по мере необходимости. – Storsey

1

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

Добавить в каталог/app/design/frontend/default/default/layout/catalogsearch.XML

<reference name="search_result_list"> 
    <action method="setDefaultDirection"><string>asc</string></action> 
    <action method="setDefaultOrder"><string>relevance</string></action> 
</reference> 

Между следующее:

<catalogsearch_result_index translate="label"> 
    ... 
</catalogsearch_result_index> 
4

Magento не найти введенную строку в качестве полного предложения. Вместо этого он разбивает (токенизирует) вашу строку поиска на слова и будет искать продукты, содержащие ЛЮБОЙ из этих слов (реализующий логику «ИЛИ»). Поэтому, если вы ищете «красные туфли», он найдет все, что содержит слова «красный» ИЛИ содержащий слова «обувь». Очевидно, что это не очень полезно в большинстве случаев, так как это даст много совершенно неуместных результатов.

Вы можете проверить это бесплатное расширение, чтобы уточнить условия поиска: Catalog Search Refinement FREE. Это расширение изменяет поведение поиска только для поиска продуктов, у которых есть ВСЕ ключевые слова (логика «И», другими словами). Это найдет только продукты, которые имеют как «красные», так и «туфли» ключевые слова. Существует также Advanced Search version of that extension, который также ищет похожие слова, основанные на фонетическом расстоянии между прочим, а также взвешенные атрибуты поиска, позволяющие всплывать самые актуальные продукты.