Индексирование разных типов записей в одной единственной схеме
Я борюсь с общим представлением о том, как (если возможно) можно индексировать несколько разных типов записей в одном ядре Solr. Несколько записей означает, что они имеют разные уникальные ключи.
Мы склонны хотеть использовать одно ядро, потому что мы хотим иметь возможность на определенных уровнях искать все сразу и не нужно объединять ядра вместе.
Так, например, у меня есть продукты, которые имеют поля:
product_code <--- unique key
product_title
product_description
etc...
тогда есть списки вакансий, которые имеют поля:
job_id <---- unique key
job_description
job_title
etc...
Есть несколько других объектов, в том числе индекс поиска Nutch, который будет иметь уникальный идентификатор "id"
Можно ли включить в schema.xml более одного уникального ключа? чтобы id не отправлял записи разных типов в разные ядра solr?
Основное беспокойство у меня заключается в том, что при определении <uniqueKey>
s по крайней мере один из них должен быть обязательным, но не все записи, отправленные в индекс solr, будут иметь требуемый ключ.
Есть ли общепринятый способ обойти эту проблему в Solr?
1 ответ
См. https://wiki.apache.org/solr/MultipleIndexes и https://wiki.apache.org/solr/UniqueKey
Solr не нужен уникальный ключ. Если вы не укажете уникальный ключ, вам нужно сделать следующее: когда вы публикуете новый документ, который имеет тот же ключ, что и существующий документ, новый документ не заменит старый, поэтому вам придется удалить сначала старый вручную, а затем добавьте новый (и, конечно, подтвердите).
Если вам нужен уникальный ключ, добавьте префикс к идентификаторам, основанный на типе. Тогда вы можете иметь два других поля, таких как идентификатор и тип. Так, например:
uniquekey: P1
product_code: 1
type: product
uniquekey: J1
job_id: 1
type: job