2015-04-29 2 views
0

Я работаю с расширением TYPO3 Solr, и у меня есть некоторые сомнения относительно манипуляций с набором результатов solr.Solr Индексация - манипулирование результатами поиска

Я добавил специальную конфигурацию для индексирования некоторых страниц в моем дереве страниц. т.е. Страницы, которые начинаются с метки «Экспертиза%». Мне удалось добавить это успешно. И индексирование успешно работает с нашими проблемами. Но то, что я хотел бы добиться того, что я хочу добавил заголовок родительской страницы для поиска result.ie

Это страница дерево

|---- 1.00.100 (parent page) 
|--Subpage 1 
|--Subpage 2 
|--Expertise 
|--Test page` 

И в результате поиска Solr должен быть

1.00.100 - Мастерство

Возможно ли это в TYPO3 Solr. Есть ли какой-либо крючок или сигнальное слово для реализации этого?

Пробовал это, но, похоже, не работает для меня?

plugin.tx_solr.index.queue.expertise_offered = 1 
    plugin.tx_solr.index.queue.expertise_offered { 
    table = pages 
      additionalWhereClause = doktype = 1 AND no_search = 0 AND title LIKE '%Expertise offered%' 
      fields { 
      title = title 
      content = CONTENT 
      parentPageTitle_stringS = CONTENT 
      parentPageTitle_stringS { 
        table = pages 
        select { 
        selectFields = title 
        where = uid = ###pid### 
        } 
        markers { 
          pid.data = field:pid 
        } 
     } 
     content { 
      table = tt_content 
      select { 
       selectFields = header, bodytext 
      } 
      renderObj = COA 
      renderObj { 
       10 = TEXT 
       10.field = header 
       # This removes HTML tags 
       11 = SOLR_CONTENT 
       11.field = bodytext 
      } 
     } 
     url = TEXT 
     url.typolink.parameter = TEXT 
     url.typolink.parameter.field = uid 
    } 
    } 

ответ

1

Возможно, вам не нужен крючок или сигнальный слот. Вы можете сделать это следующим образом:

  1. Добавьте название родительской страницы в свою конфигурацию индексирования. Для этого нет поля, но вы можете динамически добавлять поля в документы SOLR. Это делается путем отправки данных в поле, которое имеет определенный суффикс, который определяет тип поля.

    Например: Установка поля parentPageTitle_stringS в заголовок родительских страниц в конфигурации индексирования создает в индексированном документе новое сохраненное однозначное поле типа string.

    Заполнение этого поля может выглядеть следующим образом:

    plugin.tx_solr { 
        index { 
         queue { 
          <yourindexconfigname> = 1 
          <yourindexconfigname> { 
           table = pages 
    
           fields { 
            parentPageTitle_stringS = CONTENT 
            parentPageTitle_stringS { 
             # Build a query here to retrieve 
             # the parent page title. 
            } 
           } 
          } 
         } 
        } 
    } 
    
  2. В шаблоне для результатов поиска, вы можете использовать маркер ###RESULT_DOCUMENT.parentPageTitle_stringS###, чтобы получить поле.

Доступные типы полей можно найти в EXT:solr/Resources/Solr/typo3cores/conf/general_schema_fields.conf от линии 157 и далее (ссылаюсь до версии 3.0.0 здесь).

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

+0

'plugin.tx_solr.index.queue.expertise_offered = 1 plugin.tx_solr.index.queue.expertise_offered { \t таблица = страницы \t полей { \t \t название = название \t \t содержание = СОДЕРЖАНИЕ \t \t parentPageTitle_stringS = СОДЕРЖАНИЕ \t \t parentPageTitle_stringS { \t \t \t таблица = страницы \t \t \t выберите { \t \t \t \t selectFields = название \t \t \t, где = = ### UID PID ### \t \t \t} \t \t маркеры { \t \t pid.data = поля: Pid \t \t} \t \t} \t \t содержание { \t \t \t таблица = tt_content \t \t \t выберите { \t \t \t \t selectFields = заголовок, Bodytext \t \t \t} \t \t \t renderObj = COA \t \t \t renderObj { \t \t \t} \t \t} \t} } ' Я пытался это, Кажется, не работает? – Siva

+0

Не знаете, в чем проблема, но это может быть недостающее значение 'pidInList' в объекте CONTENT. Попытайтесь создать этот объект вне конфигурации solr и распечатать его в интерфейсе для отладки или что-то в этом роде. – Jost

Смежные вопросы