Индексирование разных типов записей в одной единственной схеме

Я борюсь с общим представлением о том, как (если возможно) можно индексировать несколько разных типов записей в одном ядре 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
Другие вопросы по тегам