вложенные поля в SOLR - PullRequest
       4

вложенные поля в SOLR

6 голосов
/ 10 октября 2011

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

я хочу иметь такую ​​структуру:

  • Категория1
    • пункт 1 (9)
    • пункт 2 (8)
  • Категория2
    • пункт 3 (6)
  • Category3
    • пункт 4 (23)

Я пробовал что-то вроде этого:

<field name="Category" type="string" indexed="true" stored="true" multiValued="true" required="false">
<field name="MiscellaneousName" type="string" indexed="true" stored="true" multiValued="true" required="false"/>

Но это не работает.

Обновление: Категории и предметы должны быть огранены. Каждый элемент (= фасет) является частью категории. Одна категория может иметь несколько или нулевые поля. Категории и элементы хранятся в базе данных, и я хочу их динамически индексировать. Я хочу только искать элементы, категории просто текст. Я использую Solr 3.3 с Tomcat 7.

Ответы [ 3 ]

6 голосов
/ 10 октября 2011

Спасибо за обновление. Сводные грани позволяют вам делать что-то вроде:

  • Категория 1 (17)
    • пункт 1 (9)
    • пункт 2 (8)
  • Категория 2 (6)
    • пункт 3 (6)
  • Категория 3 (23)
    • элемент4 (23)

.. но они доступны только в Solr 4.0 (транк).Однако вы можете смоделировать эти результаты в более низком Solr (до 1,4), хотя это немного сложно и требует двух запросов Solr вместо одного.Я написал сообщение в блоге об этом - Pivot Faceting (Деревья решений) в Solr 1.4 .

Вы можете сохранить схему, которая у вас есть в исходном вопросе - Pivot Faceting (реальная или смоделированная)) работает на любых произвольных, разных (или одинаковых) полях.

1 голос
/ 10 октября 2011

Pivot-фасеты - это то, что вам нужно для определения иерархии-фасетирования.
Однако вам нужно использовать сборку ствола, чтобы она работала.

Если у вас есть проблемы с обновлением, вы можете проверить параметр @http://www.lucidimagination.com/why-lucid/webinars/mastering-power-faceted-search

Это обходной путь, и вам необходимо манипулировать данными, которые вы вводите.

Cattegory1 -> item 1  
0//Cattegory1 and 1//Cattegory1//item1

Он работает с комбинацией -
результатов фильтрации, используя fq = category:"0 // Cattegory1"
facet.prefix, который поможет вам ограничить аспекты в зависимости от уровня, если вам нужно ограничить результаты

Также http://wiki.apache.org/solr/HierarchicalFaceting, может быть полезно.

0 голосов
/ 10 октября 2011

Не могли бы вы сделать категорию просто полем элемента, например, чтобы при поиске категории 1 пункт 1 и 2 возвращаются в результатах?

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

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

...