Получение информации о продукте Magento из Solr

#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.

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

  1. Перейдите в Каталог -> Атрибуты -> Управление атрибутами
  2. Выберите атрибуты, которые вы хотите индексировать в Solr, и щелкните по ним
  3. В разделе «Свойства интерфейса» установите для «Использовать в расширенном поиске» и «Используется в списке продуктов» значение «Да»
  4. Перейдите в Управление индексами и заново создайте индексы

К сожалению, 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. Любой ввод будет высоко оценен.