схема solr для полей с несколькими значениями - PullRequest
3 голосов
/ 23 июля 2010

HI, в моем документе у меня есть данные в качестве значения партии и типа партии. Один документ может иметь несколько значений партии и типа партии. Например, первый документ будет иметь значение Party в качестве Pramod и тип Party в качестве клиента. Этот же документ будет иметь значение Стороны в качестве XYZ и тип Стороны в качестве поставщика. Мне нужно спроектировать схему таким образом, чтобы я мог запрашивать все документы, где client = pramod. Я могу сделать это, определив два поля в схеме Solr как client.name и supplier.name, однако проблема в том, что набор значений для типа стороны не определен, и новые значения, вероятно, будут добавлены в будущем.

Ответы [ 3 ]

2 голосов
/ 27 июля 2010

Я думаю, что ваша схема в порядке, но ваш запрос недостаточно конкретен. Ваш запрос должен быть нацелен на конкретные поля. Таким образом, запрос будет выглядеть так:

+PartyValue:Pramod +PartyType:Supplier

Документация Solr содержит более подробную информацию.

2 голосов
/ 28 июля 2010

Здесь можно задать два возможных вопроса:

  1. Каждый документ имеет один PartyValue и один PartyType. В этом случае вам следует воспользоваться предложением Аарона (иметь одно поле для PartyValue и одно для PartyType).
  2. Каждый документ может иметь список пар PartyValue-Type. В этом случае вам, вероятно, понадобится одно поле, но с multiValued = true. Ваш запрос будет выглядеть как

    + комбинированныйField: (поставщик pramod)

Причина, по которой они находятся в одном поле, заключается в том, что вы не хотите находить документы, в которых любой тип имеет тип A, а любое значение - B; Вы хотите найти те, которые содержат пару тип / значение A / B.

0 голосов
/ 23 июля 2010

Допустим, у меня есть таблица с 3 столбцами, идентификатор документа. Значение партии и тип партии. В этой таблице у меня есть 3 строки. 1-й ряд Идентификатор документа: 1 Сторона Значение: Pramod Тип стороны: Клиент. 2-й ряд: Идентификатор документа: 1 Сторона Значение: Raj Тип партии: Поставщик. 3-й ряд Идентификатор документа: 2 Сторона Стоимость: Pramod Тип партии: Поставщик. Теперь в этой таблице, если я использую SQL, мне легко найти все документы с Партийным значением в качестве Pramod и Партийным типом в качестве клиента.

Мне нужно спроектировать схему Solr, чтобы я мог сделать то же самое в Solr. Если я создаю 2 поля в схеме Solr, значение Party и тип Party, оба из которых имеют несколько значений, и попытаемся запросить + Pramod + Supplier, то solr вернет мне первый документ, даже если в первом документе Pramod является клиентом, а не поставщиком

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...