2015-07-13 3 views
0

Я новичок в solr. Я прошел через пару блогов по интеграции solr в веб-проект. В моем текущем проекте различные java-объекты хранятся в индексе solr в виде сериализованной строки, разделенной пробелами. Например, firstname + "" + lastname + "" + email .... и так далее. Все несопоставимые объекты хранятся так же, как classname_primaryId, как уникальный ключ. Является ли это стандартным способом хранения различных объектов в solr? Как мне это сделать? Могу ли я хранить эти объекты отдельно в solr? Любые рекомендации/помощь приветствуются. Я уже не успеваю !!!!Как добавить java entites в Solr Index?

+0

В разных терминах я подразумеваю, например, объекты Person и Address в java. – jay28

ответ

0

Solr - это поисковая система для документов, поэтому вы должны думать о своих данных в этих условиях.

Если вы хотите, чтобы объекты были доступны для поиска, я считаю, что лучшим способом было бы сериализовать объекты Java в документах (объекты, представленные в JSON), а затем добавить специальные поля (такие как copyField, который содержит данные из всех другие поля, которые вы хотите найти, если имя поля не указано). Вам не нужно делать пространственное разделение на стороне вашего приложения, Solr обрабатывает это автоматически, когда вы используете copyField в схеме.

Таким образом, у вас есть возможность поиска по полям и при необходимости поиска по всем полям одновременно путем задания поля копирования.

+0

В настоящее время у меня есть schema.xml с полями - '<имя поля = 'id' type = 'string' indexed =" true "stored =" true "required =" true "/> id '. _entityData_ имеет все данные, разделенные пробелом для объекта. Согласно вашему предложению, означает ли это, что мне нужно создать copyField для _entityData_, и у него будут все данные, включая вложенные объекты в сущности? Если да, то что я могу хранить в _entityData_? – jay28

+0

Существует еще одно требование: мне нужно импортировать данные из базы данных в solr. Я читал, что DataImportHandler может быть использован для этого. Если я пойду с помощью json-подхода, тогда мне придется создавать JSON для всех записей, а затем загружать их. Кроме того, есть ли способ, с помощью которого я могу преобразовать результат solr в соответствующие java-объекты? – jay28

+0

У вас были бы поля, определенные в схеме для всех свойств сущности, которые вы хотите индексировать, и copyField с шаблоном в источнике, чтобы он соответствовал всем желаемым полям источника. Solr возвращает JSON, и вы можете использовать свою любимую библиотеку JSON для преобразования их обратно в объекты. – Fuu