Solr объединить запрос между двумя документами - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть документ продукта с полем "sid" - это внешний ключ для торгового документа, а для другого документа продажи - поле "id", это первичное поле в торговом документе.Как получить все совпадающие торговые документы по продуктам, имеющие значения "sid" в торговом документе.

Как написать запрос Solr Join?

Пример: Имея ключевое слово solr "test", мы имеемследующие данные."документы": [{"PPS_productID": "CB_9457", "documentType": "Продажи", "имя": "A1"

  },
  {
    "documentType": "Products",
    "PPS_productID": "PPS3-639",
    "PPS_storeid": "CB_9457"
  },
  {
    "PPS_productID": "CB_9458",
    "documentType": "Sales",
    "name":"A2"
  },
  {
    "documentType": "Products",
    "PPS_productID": "PPS3-640",
    "PPS_storeid": "CB_9458"
  }
  {
    "PPS_productID": "CB_9459",
    "documentType": "Sales"
    "name":"A3"
  },
  {
    "documentType": "Products",
    "PPS_productID": "PPS3-640",
    "PPS_storeid": "CB_9460"
  }

]

Как получить следующееответ на запрос соединения."docs": [{"documentType": "Products", "PPS_productID": "PPS3-639", "PPS_storeid": "CB_9457", "name": "A1"}, {"documentType": "Products","PPS_productID": "PPS3-640", "PPS_storeid": "CB_9458", "name": "A2"}]

1 Ответ

0 голосов
/ 14 декабря 2018

Вы можете сделать это 2 способами.Нам нужны две отдельные сущности, такие как таблица или коллекция, для выполнения запросов соединения, и у нас нет отдельных сущностей.Я бы сказал, что ваша коллекция удобнее.Решение. Предположим, что идентификатор продаж равен 1234, а тип - поле для отдельного документа.

  1. q=*:*&fq=sid:1234 OR id:1234 При этом вы получите все квалифицированные документы как обычные результаты, и вам придется их разделить.

  2. q=*:*&fq=sid:1234 OR id:1234&group=true&group.field=type Здесь вы получите группы со значениями типа.

Я бы предложил перейти с первым вариантом.

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