#magento #solr
#magento #солр
Вопрос:
Я работаю над приложением, в котором нам нужно, чтобы Magento отправлял все продукты в solr, чтобы мы могли извлекать их непосредственно оттуда. Это означает, что мы используем Solr REST API для извлечения продуктов, которые были отправлены Magento.
Я выполнил шаги, описанные здесь: http://www.summasolutions.net/blogposts/magento-apache-solr-integration
Настройки работают нормально, продукты передаются в solr, и я могу получить их через REST API, как и ожидалось. Однако единственными полями, которые я могу извлечь из solr, являются: status, timestamp, store_id, id, short_description, sku, price, name, in_stock,description_en, fulltext_en, attr_select_tax_class_id, attr_select_status.
В соответствии с schemas.xml , я должен быть в состоянии получить следующие дополнительные поля: «видимость», «show_in_categories», «категории».
К сожалению, это не так. Я даже добавил атрибут stored=»true» к этим полям, но без какого-либо видимого результата. Вопрос в том, как мне сделать так, чтобы эти поля отображались в результатах поиска? Мой запрос обычно выглядит следующим образом:
http://solr:8983/solr/select/?q=*:*amp;version=2.2amp;start=0amp;rows=10amp;indent=on
Кроме того, я хотел бы получить другие атрибуты Magento (например, пользовательский дизайн, теги продуктов, обзоры продуктов и т.д.). Есть ли способ, которым это можно сделать?
Спасибо. Макс.
Ответ №1:
Magento будет индексировать только те атрибуты в Solr, которые доступны для поиска и используются в списке продуктов. Это означает, что все атрибуты продукта, которые не предназначены для поиска (ни в быстром поиске, ни в расширенном поиске), не будут проиндексированы в Solr.
Если вы хотите добавить определенные атрибуты в индекс, вы можете сделать их доступными для поиска. Для этого войдите в свою панель администрирования и выполните следующие действия:
- Перейдите в Каталог -> Атрибуты -> Управление атрибутами
- Выберите атрибуты, которые вы хотите индексировать в Solr, и щелкните по ним
- В разделе «Свойства интерфейса» установите для «Использовать в расширенном поиске» и «Используется в списке продуктов» значение «Да»
- Перейдите в Управление индексами и заново создайте индексы
К сожалению, Magento иногда индексирует только ссылки, а не сами фактические значения. Поэтому, если вы не загружаете индекс в Magento, часть информации может оказаться бесполезной. В настоящее время мы используем индекс Solr, чтобы включить поиск продукта Magento в Drupal с помощью Search API, Search API Solr и Sarnia, по этой причине мы хотели изменить, какие атрибуты индексируются, однако наличие иногда только ссылок усложняет вывод.
Ответ №2:
Для получения полей вам необходимо использовать параметр fl.
параметр fl управляет полями, которые будут возвращены обратно с ответом.
Попробуйте fl=*
, чтобы вернуть все поля, помеченные как сохраненные.
http://solr:8983/solr/select/?q=*:*amp;version=2.2amp;start=0amp;rows=10amp;indent=onamp;fl=*
Вы можете настроить поля, поместив их по отдельности.
fl=visibility,show_in_categories,categories
Ответ №3:
Я решил часть проблем. Конфигурация в Magento показала, что продукта нет на складе. В результате поля «видимость», «show_in_categories», «категории».где не отображается в solr. После установки продуктов как имеющихся в наличии, они теперь отображаются.
Вторая часть моего вопроса остается без ответа: как мне получить такие поля, как изображение, URL, ключевые слова, которые будут отображаться в solr? При использовании SOAP в продукт включено гораздо больше полей. Я пытаюсь перенести все это в solr. Любой ввод будет высоко оценен.